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
