Webstatt.org - Community seit 2006 - 2012 (2024?)

Zeilenumbrüche

Avatar user-168
30.05.2006 20: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. user-158n setzt er zwar ein <br>, aber davor bleibt trotzdem ein Zeilenumbruch im Quellcode der ausgegebenen Seite.

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-255
30.05.2006 20:59

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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-168
30.05.2006 21:09

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

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-255
30.05.2006 22:10

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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-343
31.05.2006 17:11

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


Grrr, Schreibmaschine?

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.

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?) lächeln

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

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

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..)).

Avatar user-255
31.05.2006 19: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? zwinkern
In einer Konsole ist der CR hingegen unverzichtbar, um eine Zeile zu "löschen".

Mah, Erbsenzählerei... :rolleyes:

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm