PHP Zeilenumbrüche mit nl2br() eintragen/auslesen?

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Hi,

Hab gelesen das man Zeilenumbrüche mit nl2br() auslesen kann?

Kann mir jemand mal schnell erklären was dahinter steckt?
- Wie werden Zeilenumbrüche in der Datenbank gespeichert?
- Wie kann ich Zeilenumbrüche dann wieder auslesen und darstellen?

Wäre lieb wenn ihr mir das schnell beantworten könnt^^
 
Das ist so: Wenn Du in einem Textarea Enter drückst, vermerkt der Browser an der Stelle einen Zeilenumbruch mit n/. Aber so bekommst Du noch keinen Umbruch in die DB. Also musst Du den Text mit nl2br() formatieren, z.B.
PHP:
$_POST["Text"] = nl2br($_POST["text"]);
wenn Du einen Text über ein Formular versendet hast. Dann werden automatisch alle Umbrüche in <br>'s umgewandelt und Du kannst den Text in die DB speichern. Komplizierter wird es da andersrum. Rein theoretisch müsste es mit
PHP:
$text = str_replace(n\,<br \>, $text);
gehen. Weiß aber nicht, ob es funktioniert.
 
speicher einfach deinen text direkt ohne nl2br() in die DB.

Und benutze nl2br() erst wenn du den Text ausgeben willst.

HTML-Tags haben in einer DB nix verloren

Dann musst du auch nicht zurückwandeln wenn der Text z.B. nochmal in einer Textarea bearbeitet werden muss.
 
raven16 schrieb:
Kann mir jemand mal schnell erklären was dahinter steckt?
PHP:
$a = str_replace( "\r", '<br>', $a ); # in mac os
$a = str_replace( "\n", '<br>', $a ); # in linux
$a = str_replace( "\r\n", '<br>', $a ); # in windows
raven16 schrieb:
- Wie werden Zeilenumbrüche in der Datenbank gespeichert?
siehe oben, \r (carriage return) in mac os, \n (newline) in linux und \r\n (carriage return + newline) in windows.
raven16 schrieb:
- Wie kann ich Zeilenumbrüche dann wieder auslesen und darstellen?
den text belässt du in der datenbank so, wie sie reingekommen sind, d.h. ohne irgendwelche formatierungen wie nl2br() o.ä., da dies irgendwann mal zu problemen führen kann (vergleichbar mit problemen mit timestamps). ausnahmen sind dabei natürlich veränderungen, um sql injections zu unterbinden.

das hättest du aber auch schnell via google finden können bzw. hättest du es dir ganz einfach via ord( "\r" ) bzw. ord( "\n" ) ausmalen können, indem du danach in die ascii-tabelle schaust.
 
Danke für die Antworten,...
Werde das morgen mal ausprobieren und melde mich wenn's Probleme gibt ;)

mfg
 
claW. schrieb:
siehe oben, \r (carriage return) in mac os, \n (newline) in linux und \r\n (carriage return + newline) in windows.
Wobei Mac OS X auch \n benutzt. Die \r-Variante wird einem in freier Wildbahn deswegen kaum noch begegnen.
 
Zurück
Oben