Aus irgendeinem Grund wird in allen Beiträgen, die sich mit dem Escapen von Zeilenumbrüchen in PHP beschäftigen, nicht erwähnt, dass das einfache Einfügen eines Zeilenumbruchs in Strings mit einfachen Anführungszeichen genau das bewirkt, was Sie denken:
ex 1.
echo 'foo\nbar';
Beispiel 1 liefert eindeutig nicht das gewünschte Ergebnis. Es stimmt zwar, dass man einen Zeilenumbruch in einfachen Anführungszeichen nicht umgehen kann, aber man kann ihn haben:
ex 2.
echo 'foo
bar';
Beispiel 2 hat genau das gewünschte Verhalten. Leider ist der eingefügte Zeilenumbruch betriebssystemabhängig. Dies ist normalerweise kein Problem, da Webbrowser/Server den Zeilenumbruch korrekt interpretieren, unabhängig davon, ob es sich um \r , \r\n ou \n.
Diese Lösung ist natürlich nicht ideal, wenn Sie vorhaben, die Datei über andere Mittel als einen Webbrowser und auf mehreren Betriebssystemen zu verteilen. In diesem Fall sollten Sie sich eine der anderen Antworten ansehen.
Hinweis: Mit einem funktionsreichen Texteditor sollten Sie in der Lage sein, einen Zeilenumbruch als binäres Zeichen einzufügen, das auf einem anderen Betriebssystem als dem, das die Datei bearbeitet, einen Zeilenumbruch darstellt. Wenn alles andere fehlschlägt, können Sie einfach einen Hex-Editor verwenden, um das binäre ASCII-Zeichen einzufügen.