Nochmal Zeilenumbruch MySQL
Matthias
- php
0 Matthias
Hallo,
ich muss Euch nochmal mit der Zeilenumbruch-Geschichte quälen.
Sven Rautenberg hatte mir schon mal folgenden Tipp gegeben, weil
\n aus MySQL-Datenbanken nicht interpretiert wird. Es funktioniert aber immer noch nicht und ich kriege einfach nicht raus woran es liegt.
»»»» bei mir ist folgender Sachverhalt gegeben:
»»»» $string1 = $array_aus_datenbank_abfrage["name"];
»»»» und ein
»»»» echo nl2br($string1);
»»»» ergibt:
»»»» "Text\nMehrText" und nicht:
»»»» "Text
»»»» Mehr Text"
»»»» Hast du da noch eine Idee, woran das liegt?
»»Ja, "natürlich". ;)
»»In der Datenbank sind die Zeichen '' und 'n' gespeichert. Das muß beim Reinschreiben passiert sein. Normalerweise ist "\n" nämlich das Zeichen für "Newline", also den Zeilenumbruch.
»»Du stehst jetzt vor dem Problem, daß die zwei Zeichen '' und 'n' mit nl2br nicht umgesetzt werden. Ist ja klar: Das Newline-Zeichen steht nirgends, also kommt kein "<br>" dazu.
»»Ich kann da nur sagen: Überarbeite die Daten deiner Datenbank. Ersetze alle ''+'n' durch ein "\n", und es sollte eigentlich funktionieren. Sei gewarnt, daß "\n" in Strings nur funktioniert, wenn du doppelte Anführungszeichen nimmst. Mit einfachen Anführungszeichen klappt es nicht.
Also nochaml von vorne:
Wenn ich nl2br auf einen String anwende klappt alles:
echo nl2br ("das\n ist ein text");
wird zu:
das<br /> ist ein text
wird zu:
das
ist ein text
Wenn ich nl2br auf eine Variable aus der DB anwende wird nichts umgesetzt.
Wieso erkennt er das nicht als ein Zeichen, wenn es (s. oben) normalerweise doch auch geht?
In der Datenbank: Text \n Text
Im Quelltext: Text \n Text
Angezeigt: Text \n Text
In der Datenbank: Text "\n" Text
Im Quelltext: Text "\n" Text
Angezeigt: Text "\n" Text
In der Datenbank: Text '\n' Text
Im Quelltext: Text '\n' Text
Angezeigt: Text '\n' Text
Warum zeigt sich da keine Regung? Habe ich die obige Erklärung falsch verstanden?
Wenn ich <br> direkt in die DB schreibe funktioniert das. Kann ich aber u.a. nicht auf Grund von htmlentities. Das <br> würde zu <br> und somit als <br> im Browser angezeigt werden.
Danke für die Hilfe,
Matthias
Sorry, das Problem ist geklärt!