tiptom.ch Home
http://www.tiptom.ch/homepage/ - Homepage-Tips von Thomas Lüthi

Sie sind hier: tiptom.ch > Homepage-Tips > FAQ

Wie wird ein Zeilenumbruch codiert?

Zeilenumbrüche in verschiedenen Betriebssystemen

Betriebssystem Name ASCII dezimal hexadezimal oktal PHP
Windows CR LF (Carriage Return, Line Feed) 13 10 0D 0A 15 12 \r\n
Mac Classic (bis OS 9) CR (Carriage Return) 13 0D 15 \r
Unix, Linux, Mac ab OS X LF (Line Feed) 10 0A 12 \n

Zeilenumbruch in HTML und XHTML

Ein Zeilenumbruch im HTML-Quellcode wird bei der Anzeige normalerweise wie ein Leerzeichen behandelt und erzeugt somit keinen sichtbaren Zeilenumbruch. Mehrere Zeilenumbrüche und Leerzeichen werden normalerweise zu einem einzigen Leerzeichen zusammengefasst.
Das ist so definiert in der HTML-4.01-Specification im Abschnitt zu White Space
http://www.w3.org/TR/html401/struct/text.html#whitespace

(Nur zwischen <pre> und </pre> gelten andere Regeln - die meisten Browser verhalten sich dort so: Alle Leerzeichen werden angezeigt, umgebrochen wird nur dort, wo auch im HTML-Quelltext ein Zeilenumbruch steht, und alle Buchstaben sind gleich breit.)

Um einen sichtbaren Zeilenumbruch zu kriegen, schreibt man
in HTML: <br>
in XHTML: <br />

Zeilenumbruch erzeugen in PHP

Die Zuordnung in obiger Tabelle ("\n" <=> LF, "\r" <=> CR) steht so im PHP-Manual, Abschnitt zu Strings
http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.double

Diese Angaben betreffen vermutlich nur den (üblichen) Fall, dass man mit einem PHP-Skript Text erzeugt (z.B. HTML-Quelltext), der direkt an den Browser ausgegeben wird.
In dem Fall reicht es normalerweise, "\n" zu schreiben
(N.B. Es müssen doppelte Anführungszeichen sein.)

Anders sieht es aus, wenn man mit einem PHP-Skript Dateien liest und schreibt. Dann kann PHP den String "\n" je nach Konfiguration auch in den Zeilenumbruch des betreffenden Betriebssystems umwandeln.
Detaillierte Informationen siehe PHP-Manual zu fopen()
http://www.php.net/manual/en/function.fopen.php

Wenn man also sicher sein will, dass ein Zeilenumbruch z.B. im Windows-Format "CR LF" gespeichert wird, muss man ihn über die numerischen Codes beschreiben, z.B. mit chr(13).chr(10), hexadezimal als "\x0D\x0A" oder oktal als "\15\12".

In PHP gibt es die praktische Funktion nl2br() (new line to break), die alle Vorkommen von "\n" durch "<br />\n" ersetzt.

Zeilenumbruch erzeugen in JavaScript

Um in JavaScript-Ausgaben - z.B. bei alert() - einen Zeilenumbruch zu erzeugen, reicht meistens "Backslash n":
"\n"

Zeilenumbruch erzeugen in Perl

Auch in Perl bewirkt "\n" offenbar unter Umständen, dass ein Zeilenumbruch im Stil des jeweiligen Betriebssystems erzeugt wird. Das kann also "CR LF", "CR" oder "LF" sein.

Wenn man mit Perl Dateien bearbeitet und sicher sein will, dass diese auf einem bestimmten Betriebssystem lesbar sind, ist es demzufolge - wie bei PHP - am sichersten, die Zeilenumbrüche mit ihren numerischen Codes zu codieren.

Im Februar 2004 gab es im Forum zu SelfHTML eine Diskussion zum Thema:
"(PROGRAMMIERTECHNIK) \r, \n oder \r\n ?"
http://forum.de.selfhtml.org/archiv/2004/2/71954/


Auf diesen FAQ-Eintrag verlinken:
Wie wird ein Zeilenumbruch codiert?
http://www.tiptom.ch/homepage/faq.html?q=zeilenumbruch

Zur Liste mit allen Fragen

(nach oben) Zum Seitenanfang


Alle Rechte beim Autor: Thomas Lüthi.
E-Mail: info@tomogramm.ch (Bitte keine Werbung zusenden)

Zuletzt bearbeitet am 10.01.2020

URL dieser Seite: http://www.tiptom.ch/homepage/faq.html

Druckversion dieser Seite