Problem mit "preg_replace"
Steffen Velte
- php
Hallo,
habe ein Problem mit folgendem regulären Ausdruck:
$content=preg_replace("/<UL>/","(LISTE)",$content);
Die Fehlermeldung lautet:
"Unknown modifier 'L'"
Hier besteht aber ME ein Problem mit der Verwendung des Wortes LISTE, da nur bei Verwendung dieses Wortes der Fehler auftritt. Habe ich bei der Notation einen Fehler gemacht, oder warum tritt der Fehler auf?
Schonmal danke!
Grüsse,
Steffen Velte
Moin,
habe ein Problem mit folgendem regulären Ausdruck:
$content=preg_replace("/<UL>/","(LISTE)",$content);Die Fehlermeldung lautet:
"Unknown modifier 'L'"
Works for me. Dein Fehler muß woanders liegen.
habe ein Problem mit folgendem regulären Ausdruck:
$content=preg_replace("/<UL>/","(LISTE)",$content);Die Fehlermeldung lautet:
"Unknown modifier 'L'"
Works for me. Dein Fehler muß woanders liegen.
Nein, definitiv nicht. Tausche per preg_replace auch noch andere
Tags aus, da funktioniert es ohne Fehlermeldung.
Beispielsweise:
$content=preg_replace("/<BR><BR>/","(ABSATZ)",$content);
Damit z.B. funktioniert es. Ich kopiere diese Zeile, ersetzte im
Ausdruck ABSATZ gegen LISTE und der Fehler tritt auf. Es muss daher,
wie gesagt, am Wort LISTE liegen - evtl. nur bei "meiner" PHP-
Version (4.0.4pl1)?
Grüsse,
Steffen Velte
Moin,
Damit z.B. funktioniert es. Ich kopiere diese Zeile, ersetzte im
Ausdruck ABSATZ gegen LISTE und der Fehler tritt auf.
Es geht. Es gibt auch keinen vernünftigen Grund, warum PHP im zweiten Argument von preg_replace rumparsen sollte. Die Fehlermeldung "Unknown modifier" ist typisch für Probleme mit dem ersten Argument, zum Beispiel wenn man etwas der Art preg_replace("/http://www.../", ...) macht (man beachte die Auftreten von Slashes). Es ist daher häufig eine gute Idee ein anderes Zeichen als / zu verwenden, da prinzipiell so ziemlich alles geht. Ich persönlich mag ! oder , sehr. In den von dir gegebenen Beispielen sieht das aber nicht so aus. Hast du die Beispiele eventuell etwas vereinfacht und die vereinfachte Version nicht nochmal getestet?
Es muss daher, wie gesagt, am Wort LISTE liegen - evtl. nur bei "meiner" PHP-
Version (4.0.4pl1)?
Die ist schon _sehr_ alt und enthält IIRC bekannte Sicherheitslücken. Wenn du schon eine Version der 4.0-Serie einsetzt, dann wenigstens die aktuelle 4.0.6. Damit habe ich deinen Fetzen eben getestet und keine Probleme gehabt. (Eine 4.0.4 habe ich aus den genannten Gründen nicht da und vermutlich ausser dir auch sonst niemand mehr. ;-)
Der Sprung ins kalte 4.3-Wasser wäre natürlich auch eine sehr gute Idee.
Es muss daher, wie gesagt, am Wort LISTE liegen - evtl. nur bei "meiner" PHP-Version (4.0.4pl1)?
Die ist schon _sehr_ alt und enthält IIRC bekannte Sicherheitslücken.
Wir ziehen in den nächsten Tagen auf neue Server mit v4.2.2 um,
hoffe mal, das Problem tritt dann nicht mehr auf. Solange verwende
ich str_replace...
Danke für Deine Hilfe.
Grüsse,
Steffen Velte