Gerch2003: Zeilenumbruch übernehmen

Hallo Leute,

ich hab auf einer unserer Internetseiten ein selbst programmiertes CMS laufen.

Die Texte werden ganz einfach in eine Mysql Datenbank geschrieben und auf der seite wieder ausgelesen.

Jetzt werden aber keinerlei Zeilenumbrüche mitgespeichert und ich müsste für jeden Zeilenumbruch ein <br /> einfügen.

Gibt es irgend eine Möglichkeit es so zu programmieren, dass es automatisch funktioniert und meine Zeilenumbrüche, die ich mit der "Enter"-Taste mache übernimmt?

Gruß Gerch

  1. Habs gefunden ;-)

    nl2br <== ftw

  2. Hello,

    um die Daten in die Datenbank zu schreiben, muss der Text passend zum DBMS und der verwendeten Schnittstelle vorbehandelt werden, damit die Umbrüche nicht das Query (zer-)stören.

    Wenn Du die Daten über einen Blockbuffer (Prepared Statement) übergibst, ist dies i.d.R. nicht mehr notwendig, da das DBMS ja dann Daten und Befehle getrennt geliefert bekommt.

    Wenn Du die Daten wieder ausliest, hast Du die normalen Zeilenumbrüche (also z.B. "\r\n") in den Daten stehen. Denn eigentlich gibt es ja gar keine Zeilen ;-)

    Je nachdem, womit Du die Daten nun darstellst, musst Du dafür sorgen, dass das Werkzeug (Editor, Browser, ...) mit den Steuerzeichen auch etwas anfangen kann.

    So würde z.B. ein Browser mit dieser Sequenz die Daten per HTML in der gewünschten Form darstellen

    echo "<pre>\r\n";
       echo htmlspecialchars($daten);
       echo "</pre>\r\n";

    weil er hier als forformatierter text gekennzeichnet wurde

    oder aber, Du formatierst den Text selber per

    $html = nl2br(htmlspecialchars($daten));
       echo $html;

    So würden erst alle HTML-schädlichen Zeichen codiert werden und dann die Steuerzeichen für Zeilenumbrüche mit HTML-gerechten <br /> ergänzt werden.

    Liebe Grüße aus Syburg

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de