Powl: Möglichkeit um Code mit Formatierung anzuzeigen

Beitrag lesen

Hallo Ashura,

Nein, das wäre eine ganz normale Zeichenkette. Steuerzeichen werden mit dem Backslash maskiert, also „\n“.

Ja, sorry ich meinte "\n".

Während html ja <br> erwartet. (Wie wäre das dann mit Tabs?)

Diese entsprechen dem Steuerzeichen „\t“.

Ja, nur wie wäre die [\n -> <br>] analoge html Entsprechung?

Die Möglichkeit mit whitespace:pre; lasse ich mangels IE Unterstützung mal aussen vor.
Diese Begründung verstehe ich nicht. Der IE hat keinerlei Probleme mit dieser Eigenschaft (außer, dass sie eigentlich „white-space“ heißt) und diesem Wert.

Ich zitiere mal aus SelfHTML zum thema white-space:
Zitat
"Erläuterung:

Mit white-space: können Sie das Verhalten für den Zeilenumbruch festlegen. Folgende Angaben sind möglich:

normal = automatischer Zeilenumbruch (wie bei allen HTML-Tags außer <pre> und <nowrap>).
pre = Zeilenumbruch wie im Editor eingegeben (so wie bei <pre>...<pre>).
nowrap = Kein automatischer Zeilenumbruch, Umbruch möglich durch entsprechende HTML-Tags.
Beachten Sie:

Diese Angabe gehört zur CSS-Version 2.0. Der Internet Explorer interpretiert nur den Wert nowrap und diesen erst ab Version 5.5, nicht den Wert pre. ...
Zitatende
Wenn ich das richtig interpretiere, dann versteht IE "white-space:pre;" also nicht.

Wenn man aber sowohl horizontales Scrollen vermeiden, aber totzdem eine möglichst dem Eingabetext entsprechende Formatierung erreichen will, müßte man doch mittels preg_replace() jedes "/n" gegen ein "<br>" austauschen, richtig?

Nein, nicht unbedingt. Präformatierter Text wird unverändert dargestellt, also werden sämtliche Zeilenumbrüche auch dargestellt.

Ja, sofern sie eingegeben wurden, aber nicht in Abhängigkeit zum viewport, und darum ging es mir.

Zudem gäbe es Möglichkeiten, um zu großes horizontales Scrollen zu vermeiden:

  1. http://de2.php.net/manual/en/function.wordwrap.phpwordwrap, hier wird der Text nach der angegebenen Zeichenzahl umgebrochen.

(404er)
Das wäre mir zu unflexibel, siehe oben.

  1. http://de.selfhtml.org/css/eigenschaften/positionierung.htm#overflow@title=overflow:auto, wenn der Text hier breiter ist, als der ihm zur Verfügung stehende Platz, wird einfach ein horizontaler Scrollbalken angezeigt.

Dieses horizontale Scrollen ist ja eben das, was ich gerne vermieden hätte.

Schau doch einfach in den Quellcode des aktuellen Postings?
Dort siehst du, dass eine Funktionalität genutzt wurde, die PHPs nl2br entspricht.

DAS ist das Ei des Columbus, Danke! Diese Funktion entspräche einem Austausch von \n gegen <br>, ist aber sinnvoller als mittels preg_replace().

In der Textarea ist natürlich nichts Dergleichen erforderlich, da das Steuerzeichen für den Zeilenumbruch hier natürlich automatisch wie gewünscht umgesetzt wird.

Das ist klar, aber es ging ja um die anschließende Ausgabe in HTML (mittels echo $text z. B.)

Einen schönen Donnerstag noch.

Selbst auch und danke für Deine Antwort. nl2br() ist die Lösung.

Tschüß
da^Powl