Problem mit str_replace

kcyberbob

Erfahrenes Mitglied
Hallo zusammen,

ich hab folgendes Problem:
Ich will, das wenn ich ein Formular abschicke und es in eine datanbank gespeichert wird, daß alle zeilen umbrüche in <br> tags umgewandelt werden und so in der datenbank auch gespeichert werden.
Also habe ich folgende funktion geschrieben.

PHP:
function Code ($input) {
     	$input = ereg_replace("\n", "<br>", $input);
		
    return $input;
    }

und dann habe ich bevor die daten gespeichert werden folgende zeile eingefügt in mein skript.

PHP:
code($content);

so und jetzt kommt das eintragen in die daten bank.

aber in meine daten bank wird kein <br> tag eingetragen.
warum nicht?

$content ist die textarea aus meinem formular.

gruß kcyberbob
 
Und zwar liegt das daran, dass du der Variable $content den Rückgabewert der Funktion Code zuweisen musst!
PHP:
$content = Code($content);

Desweiteren würde ich hier nicht ereg_replace, sondern nl2br verwenden.
nl2br kann man ungefär so beschreiben:
PHP:
function nl2br($param1) {
   return str_replace("\n", "<br />", $param1);
}

Wenn du nur einfache Texte ersetzten musst, und auf RegEx verzichten kannst, dann nimm str_replace und nicht ereg_replace, weil es wesentlich schneller ist. Und falls du RegEx benötigst, dann nim preg_replace

Achja: Falls du die Variable ändern willst, ohne ein $content = vor dem Code-Aufruf zu schreiben, kannst du es mit Refgerenzieren von Vriablen machen:
PHP:
function Code(&$param1) {
    $param1 = nl2br($param1);
}
 
Zurück