dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Stringfunktionen

Wie kann ich Zeilenumbrüche verarbeiten?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

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);
Wie kann ich Zeilenumbrüche verarbeiten?
http://www.php-faq.de/q-string-zeilenumbruch.html
 

Login