Willkommen in der Webstatt Zum Webstatt Blog und Stories
Dustwolf Dustwolf am 30.05.06 22:39

Hi.

Kann mir einer verraten, wie ich einen Zeilenumbruch zu einem <br> umwandeln kann, ohne den speziellen Befehl?

Ich möchte einfach str_replace("\n", '<br>', $text); benutzen. Dann setzt er zwar ein <br>, aber davor bleibt trotzdem ein Zeilenumbruch im Quellcode der ausgegebenen Seite.

netcup.de Warum gibt es hier Werbung?
milahu milahu am 30.05.06 22:59

Schmeiß mal die Carriage-Returns (Grrrr M$..) raus: \r

Dustwolf Dustwolf am 30.05.06 23:09

Hat funktioniert. Besten Dank. Hat das nur was mit Windows zu tun? Oder läuft das unter Linux trotzdem fehlerfrei?

milahu milahu am 31.05.06 00:10

Der CR wird unter Unix einfach ignoriert. Näheres findet sich in der Wikipedia :)

Wasili am 31.05.06 19:11

Quote
Original von milahu
Schmeiß mal die Carriage-Returns (Grrrr M$..) raus: \r


Grrr, Schreibmaschine?

Quote
Original der Deutschen Wikipedia
Bei Schreibmaschinen ist der Wagenrücklauf immer mit dem Zeilenvorschub verbunden. Entweder mit dem Zeilenschalthebel bei mechanischen Schreibmaschinen oder mit der entsprechenden Taste bei elektrischen oder elektronischen Schreibmaschinen erfolgen immer beide Funktionen gleichzeitig.


Meiner Meinung nach macht da MS was richtig.
"Wagenrücklauf" (\r) schiebt ja im Grunde den Cursor an Anfang der Zeile.
"Zeilenvorschub" (\n) hingegen geht erst auf die neue Zeile.

Foglich müsste es also, vom logischen Blickpunkt her betrachtet, bei Linux falsch sein. Denn Linux interpretiert \n ja auch gleichzeitig als Wagenrücklauf (Springt ja an Anfang der Zeile, oder täusche ich mich..?).
Mac OS 9 und kleiner macht auch was falsch: Da ist nur "\r" der Absatz, was ja aber eigentlich heisst (hiess?) dass der "Cursor" (Bei der Schreibmaschine halt der Fokus oder wie man dem Ding auch immer sagen will) an Anfang der Zeile soll.

Quote
Unter Zeilenvorschub (englisch line feed) versteht man im ursprünglichen Sinne das Drehen der Walze bei einer Schreibmaschine.

Der Wagenrücklauf (englisch carriage return) bezeichnet die Rückführung der Schreibmarke an den Anfang der Zeile.


In diesem (vielleicht einzigen?) Fall also: Grrr Linux (Unix?) :)

PS: "nämlich das Bewegen in die nächste Zeile."
Heisst eigentlich noch lange nicht dass der Cursor an Anfang der Zeile springen soll ;)

$search = array("\r\n","\r","\n");
$string = str_replace($search,'<br />',"Text \r\n mit \r gemischten \n Absätzen \r\n");

Ich denke damit kann man das Betriebssystemunabhängig machen (Und schlussendlich auch Progammunabhängig. So macht ein Notepad halt \r\n, ein anderes Programm vielleicht nur \r und ein drittes nur \n auf der gleichen Plattform (Maybe..)).

milahu milahu am 31.05.06 21:09

Der Punkt ist, dass der Wagenrücklauf in einem Textdokument überflüssig ist, da eine neue Zeile den Wagenrücklauf impliziert. Warum also noch speichern? ;)
In einer Konsole ist der CR hingegen unverzichtbar, um eine Zeile zu "löschen".

Mah, Erbsenzählerei... :rolleyes:

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt