Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 4 Gast/Gäste
Umlaute in ae ue oe konvertieren?
#11
Woran es jetzt genau gelegen hat, kann ich dir auch nicht sagen. ?

Die ID und Klassen kannst du in deinem stylesheet einbauen und sie nach deinen wünschen anpassen.
Ich hatte sie früher mal für eine andere Seite eingefügt.
Zitieren
#12
(13.12.2014, 21:08)lantis schrieb:
(13.12.2014, 20:54)StefanT schrieb: Vermutlich stimmt die Kodierung der Datei nicht.


(13.12.2014, 19:30)StefanT schrieb: Darf man fragen, warum du die Umlaute ersetzen willst? Wink

Also dort, wo die Themen angezeigt werden sollen, auf meiner Website, habe ich die Dateien in utf-8 ohne BOM abgespeichert.

Der Grund, warum ich das umwandeln will ist eben der, weil äöü zwar im Forum korrekt dargestellt werden, allerdings nicht auf meiner Website, wo die letzten Themen ausgelesen werden. In der Mysql - Datenbank steht auch alles korrekt drin mit Sonderzeichen, es wird nur nicht korrekt ausgegeben.

Das versteh ich nicht.

Das wird wohl daran liegen, dass die Verbindung zum MySQL-Server nicht UTF-8 kodiert erfolgt. Ausserdem benutzst du die veraltete mysql_* Erweiterung von PHP. Benutze doch PDO.
Zitieren
#13
Na egal, es geht ja jetzt dank eurer Hilfe! Smile Allerdings bin ich jetzt auf ein neues Problem gestoßen. Ich wollte die Ausgabelänge der Thementitel kürzen mithilfe einer Funktion, allerdings kürzt die Funktion nichts und ich erhalte keine Fehlermeldung.

Jetzt bräuchte ich wiedermal eure Fachkundige Hilfe, denn ich weiss nicht wo der Fehler ist. Ich habe die Datei von Svepu genommen und ganzen unten die Funktion eingefügt: Ich wollte nicht extra ein neues Thema dafür aufmachen.

PHP-Code:
function shortText($string,$lenght
{
        if(
strlen($string) > $lenght) {
            
$string substr($string,0,$lenght)."...";
            
$string_ende strrchr($string" ");
            
$string str_replace($string_ende," ..."$string);
        }
        return 
$string;
    }
     
// Aufrufen der Funktion
    
echo shortText(echo_threads(),20);
?>

Wo ist der Fehler?
Zitieren
#14
lenght -> length

und was du da eigentlich machen willst solltest du noch dazusagen...

Denkt bei diesen Stringverkürzern eigentlich nie jemand daran, daß es ziemlich sinnlos ist, einem String der 1 Zeichen zu lang ist, dann statt dem einen Zeichen gleich drei Punkte anzuhängen und den String damit letztendlich länger zu machen? Wink
Zitieren
#15
huhu!

Oops, übersehen. Allerdings geht nach der Korrektur zu "length" das verkürzen noch nicht. Ich möchte halt nach 20 Zeichen den Thementitel abschneiden und mit 3 Punkten ergänzen. Wink
Zitieren
#16
Ok, ich hab jetzt ne Stunde rumgefummelt und bin erstmal auf ne einfache Lösung ohne die "..." gekommen.

statt

PHP-Code:
echo $output

habe ich
PHP-Code:
echo $output substr($output,0,90); 

eingefügt im Script von SvePu. Smile

Falls noch jemand ne Idee hat wie man das mit den Punkten hinbekommt, dann bitte hier schreiben. Smile
Zitieren
#17
Erst einmal...das Script ist nicht von mir...ich hatte es nur an ein Projekt angepasst.  Wink

Du brauchst doch nicht den gesamten $output zu kürzen, sondern nur den eigentlichen Threadnamen.
Da der Threadname über die utf8_debug-Funktion geleitet wird, kannst du ihn dort auch einkürzen lassen.

Ersetze die komplette utf8_debug-Funktion im Script einfach durch diese:
PHP-Code:
function utf8_debug($message)
{
    if (
$utf8_debug_function == "on")
    {
        
$find = array(
                        
"ö",
                        
"ä",
                        
"ü",
                        
"Ö",
                        
"Ä",
                        
"Ü"
                    
);

        
$replace = array(
                            
"ö",
                            
"ä",
                            
"ü",
                            
"Ö",
                            
"Ä",
                            
"Ü"
                        
);

        
$message str_replace($find$replace$message);
        
    }
    
// <-- Hier wird gekürzt --
    
if (strlen($message) > 30) {
        
$message substr($message027) . '...';
    }
    
// -->
    
return $message;


Sollte der Threadname jetzt länger als 30 Zeichen sein, wird er bei 27 Zeichen abgeschnitten und um 3 Punkte ergänzt.

So wolltest du doch haben oder?
Zitieren
#18
Du bist ein Schatz! Vielen Dank, genau so wollt ichs haben. Smile
Zitieren
#19
Gern geschehen... Wink
Zitieren