Tom: Zeilenumbrüche in <textarea> umwandeln

Beitrag lesen

Hello,

ich möchte Zeilenümbrüche aus einem Texteingabefeld mit PHP umwandeln. Das soll so aussehen:

Eingabe in <textarea>:

Absatz 1

Absatz 2

Absatz 3
usw.

Das Ergebnis soll dann so aussehen:

<p>Absatz 1</p>
<p>Absatz 2</p>
<p>Absatz 3</p>

Wie kann ich das am besten machen?

Die Browser _sollten_ alle, egal auf welchem System sie laufen, ein CRLF senden beim Zeilenumbruch, wenn die passende Umbruchmethode für die Textarea im HTML gefordert wurde. (wrap="soft")
http://de.selfhtml.org/html/formulare/eingabe.htm#bereiche

Manche Browser senden aber trotzdem nur CR oder LF.
Diesen Schaden müsstest Du auf dem Server erst einmal beheben. Es reicht, die LF (=chr(10)) aufzuheben. Der IE würde in einer Textarea die LF sowieso wieder zu CRLF ergänzen.

Also nimmst Du str_replace() http://www.php.net/manual/en/function.str-replace.php
und tauschst die Umbrüche aus.

Erst die CRLF gegen LF, dann die CR gegen LF und am Ende die LF gegen

"</p>".LF."<p class="meine_Klasse_Textbox">";

define (CR, chr(13));
define (LF, chr(10));

$textarea = str_replace(CR.LF, LF, $_POST['textarea']);
$textarea = str_replace(CR, LF, $textarea;
$textarea = str_replace(LF,   "</p>".LF."<p class="meine_Klasse_Textbox">", $textarea);
$textarea = "<p class="meine_Klasse_Textbox">".$textarea."</p>".LF;

In der letzten Zeile werden dann nur die äußeren Grenzen ergänzt.

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau