Die sogenannten "Zeilenumbrüche" sind im Prinzip ganz gewöhnliche Bytes wie ein A oder % auch - sie werden erst bei der Anzeige in einem Editor als Zeilenumbrüche dargestellt. Hässlicherweise haben sich für diesen Zweck unterschiedliche Zeichen (Bytes) etabliert: Windows verwendet \r\n, Unix \n und der Mac \r als "neue-Zeile-Zeichen". Dabei gilt:
Escape- Hex- ASCII- Abkür- Name/Bedeutung Name/Bedeutung Sequenz Code Code zung englisch deutsch ------- ---- ------ ------ ------------------ -------------- \r 0D 13 CR carriage return Wagenrücklauf \n 0A 10 LF line feed, newline Zeilenvorschub ------- ---- ------ ------ ------------------ --------------
Die Unterscheidung zwischen Wagenrücklauf und Zeilenvorschub rührt von den Zeilendruckern her, bei denen das zwei separate Steuersignale sind.
Die Escape-Sequenzen können in PHP direkt in Strings, die zwischen " (Anführungszeichen, double quotes) stehen, sowie in Regulären Ausdrücken verwendet werden. Ebenso kann man dort \x0D, \x0A etc. (hexadezimale Escape-Sequenzen) verwenden. Die ASCII-Codes kann man von der Funktion chr() umwandeln lassen.
Empfängt man Daten von unbekannten Clients, sollten verarbeitende Funktionen mit allen Varianten zurecht kommen; eine universelle Funktion zum Ersetzen von Zeilenumbrüchen durch Leerzeichen sieht z. B. so aus:
$string = preg_replace('/\r\n|\r|\n/', ' ', $string);






