preg_replace liefert zwei <br> statt einem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
datum
eins
email
ende
ersetzen
fehlerquelle
folgendes problem
funktion
gut input
input
lese
markieren
string
suchen
tag
teil
umbruch
zeile
zuviel
-
Hallo,
folgtag/ende">endes Problem. Ich durchsuche einen String nach Abs?tzen, also nach \n bzw. \r. Diese sollen dann durch einen HTML-konformen <br>-Tag ersetzt werden. Die Funktion funktioniert auch soweit, allerdings liefert er mir immer zwei <br> anstatt nur einem ("Das ist Zeile eins.<br><br>Zeile 3, obwohl es Zeile 2 sein soll, ein br-tag ist zuviel"). Das nervt mal. :/
Hier mal ein Teil des Codes:
$input = "$datum|$name|$email|$www|$beitrag|$ip";
$input = preg_replace("\n", "<br>", $input);
$umbruch = "\n";
$input .= $umbruch;
Dass ich nach dem ersetzen noch ein \n hinter den String setze, ist, um das Ende eines Beitrages zu markieren (lese die Beitr?ge mit fgets zeilenweise aus). Aber das geschieht ja _nach_ dem Ersetzen, das schlie?e ich also als Fehlerquelle aus.
Hoffe, mir kann da einer weiterhelfen.
Im Topic soll es nat?rlich "zwei <br>" hei?en. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Bei mir funktioniert dieser RegEx ganz gut:
$input = preg_replace("/\r\n|\r|\n/", "<br>", $input);
Der sucht zuerst nach \r\n dann nur nach \r und dann nur nach \n. Somit solltest du nur ein <br> erhalten.
ciao, moin339 -
Immer noch doppelt.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage