[PHP/MySQL] Problem mit Zeilenumbrüchen in Textfeldern

Virginia

Ensign
Registriert
Aug. 2005
Beiträge
133
Ich habe mir für meine Website eine Administrationsoberfläche gebaut. Da haben wir u.a. Textfelder, die an eine Datenbank gesendet werden. Damit man das
HTML:
<br>
nicht selbst einfügen muss, sondern ein zeilenumbruch im Textfeld erkannt wird, wird vor der Eintragung in die Datenbank nl2br auf das Textfeld angewandt:
Code:
	$biografie = nl2br($biografie);
So weit, so gut. Klappt bis dahin alles.
Nun kann man das ganze aber natürlich auch noch editieren. Da soll dann br wieder zu nl werden:
Code:
$biografie = str_replace("<br />","\n",$biografie);
Danach ist dann aber aus einem einfachen <br /> ein doppeltes geworden :(

Wenn ich das str_replace weglasse und rufe die Datei zum editieren auf, macht er mir bei jedem Editieren ein neues <br /> zu jedem <br />, so dass es dann von Zeilenumbrüchen wimmelt.

Wäre sehr froh, wenn mir jmd. sagen kann, was ich falsch mache :(
 
Bei mir ergibt
PHP:
$ersterstring = "erstes <br />zweites<br />drittes<br />";
$zweiterstring = str_replace("<br />","\n",$ersterstring);
$dritterstring = preg_replace("!<br />!","\n",$ersterstring);

print "\n<br />---<br />";

print $ersterstring."<br>";
print $zweiterstring."<br>";
print $dritterstring."<br>";

print "---<br />";
folgenden HTML Quelltext
Code:
[FONT=monospace]
[/FONT]<br />---<br />erstes <br />zweites<br />drittes<br /><br>erstes 
zweites
drittes
<br>erstes 
zweites
drittes
<br>---<br />
Zur Not nimm halt preg_replace() statt str_replace().

Viele Grüße
 
Mit preg_replace ergibt sich leider dasselbe.

Eigentlich wollte ich ja diese Umwandlung von <br /> in \n komplett weglassen. Wäre am einfachsten.
Aber wenn ich dann in ein Textfeld eingebe:
spuckt er mir beim Editieren folgendes aus:
Ich kann mir nicht erklären, woher der Zeilenumbruch hinter dem <br /> dann kommt, denn der wird bei erneutem Editieren ja dann wieder in <br /> umgewandelt usw... :(
 
Zurück
Oben