Hallo,
wie sind die Zeilenumbrüche bei dir dargestellt?
keine Ahnung, wie krieg ich das raus?
wieso "rauskriegen"? Das solltest du *wissen*, es ist doch deine Website.
Indem du jedem LF ein CR voranstellst, wenn noch keins da ist.
Kann ich mir dabei sicher sein, dass die anderen Browser in dem Fall nicht 2 Zeilenumbrüche erzeugen?
Probier es mit den gängigen Browsern aus. Theoretisch dürften sie keinen doppelten Umbruch anzeigen, weil die Kombination CR/LF im Web die übliche Form ist (in vielen Kontexten sogar die vorgeschriebene). Es ist eher als Großzügigkeit der Browser zu sehen, wenn sie auch ein einfaches LF korrekt verarbeiten.
Probier insbesondere aus, ob dein Problem mit korrekten \r\n als Umbruch tatsächlich gelöst ist. Wenn nicht, hast du nämlich noch eine ganz andere Baustelle.
Und die nächste Frage wäre "wie mach ich das am einfachsten?".
Einfach ereg_replace("\n", "\r\n", $text); ?
Nein.
Erstens schon deshalb nicht, weil die ereg_*-Funktionen inzwischen als "deprecated" gelten, also veraltet und missbilligt, und in zukünftigen PHP-Versionen sogar entfallen werden. Es wird empfohlen, preg_replace stattdessen zu verwenden.
Zweitens nicht, weil dieser Ausdruck jedes LF durch CR/LF ersetzen würde. Aus einem schon bestehenden CR/LF würde also CR/CR/LF - und was die Clients *daraus* machen, wissen die Götter.
Der Suchausdruck muss also sein: Ein Zeichen, das nicht \r ist, gefolgt von einem \n. Dieser Ausdruck soll ersetzt werden durch das gefundene Nicht-\r-Zeichen gefolgt von \r\n.
Ciao,
Martin
--
Der Professor sitzt beim Essen in der Mensa. Ein Student setzt sich ihm unaufgefordert gegenüber.
Professor: Seit wann essen denn Schwein und Adler an demselben Tisch?
Student: Na gut, dann flieg' ich eben zum nächsten Tisch.