Usereingabe für Datenbank formatieren.

  • Folgendes Vorhaben:

    Ein Leser eines Blog tippt einen Kommentar, bestehend aus sagen wir 3 Absätzen. Dann schickt Er das Formular ab und ein PHP-Skript soll den Text umformatieren, bevor er in die Datenbank geschrieben wird.

    Dazu soll für jeden Absatz ein <p> und ein </p> gesetzt werden. Gibt es dafür bereits eine PHP-Funktion?

  • Das sieht doch schonmal gut aus. Allerdings, wie ist das mit den diversen Browsern? Ich würde mich wundern, wenn ich mich darauf verlassen kann, dass jeder Browser ein \n für Zeilenumbruch verwendet. Habe auch schonmal mit \n\r für einen einzigen Zeilenumbruch zu tun gehabt. Für nen neuen Absatz wäre das dann ja \n\r\n\r. Das müsste man wohl beides abfragen?

  • Also wenn ich einen Text im Texteditor schreibe (auf Linux mit gEdit), das Ganze dann mit 'copy and paste' in den Firefox einfüge und zur Datenbank schicke, dann habe ich bei zwei hintereinanderfolgenden Zeilenumbrüchen folgende Zeichenfolge: "\r\n\r\n". Darum habe ich folgenden Code geschrieben:

    Das funktioniert ganz sicher zuverlässiger. Und würde übrigens keine überflüssigen <p></p> generieren, falls mal wer auf den Joke kommt, 50 mal auf die Return-Taste zu hauen, bevor das Formular abgeschickt wird.

    Nur die Tatsache, dass "\r" hierbei ignoriert wird sollte ich noch verbessern. Was, wenn mal irgendein Editor "\r\r" erzeugt? Dann hätte man nur einen einzigen Absatz.

  • es gibt nur 2 Formate (meines Wissens nach), \n (Unix)und \r\n (Windows), Mac is glaub ich ooch eins von beiden. Unter Unix kann man in manchen Editoren einstellen, den Windowsumbruch zu erzeugen.
    Du brauchst dir um \r\r keine Sorgen machen ;)

    Gruß,
    Jojo