Christoph Schnauß: preg_replace() verblüfft mich

Beitrag lesen

hallo Forum,

ich habe an einem Script gebastelt, das erstmal mit Windows, Apache 2.0.54 und PHP 5.0.4 problemlos lief. Jetzt habe ich es auch mit FreeBSD, Apache 2.0.54 und PHP 5.0.4 aufgerufen, und plötzlich beschwert es sich über "Call to undefined function preg_replace()". Der Hintergrund ist: das Script liest eine URL ein, das Suchmuster paßt auf alle HTML-Kommentare, und die sollen gestrichen werden, das Muster zum Ersetzen ist also einfach "". Da das Teil mit Windows erstmal funktionierte, hab ich nicht weiter ins Handbuch geschaut.
Jetzt wurde ein kurzes Nachsehen doch nötig. Siehe da, das Handbuch sagt mir: "Stellen Sie sicher, dass Ersatz gültigen PHP-Code erzeugt, weil sich PHP sonst über einen Syntaxfehler (parse error) in der Zeile beschwert, die den Aufruf von preg_replace() enthält." Aha. Da mein "Ersatz" gar nichts enthält, ist das offenbar auch kein gültiger Code. Oder interpretiere ich da was verkehrt? Schließlich wird mir ja was von "undefined function" erzählt und nix von "parse error". Ich gestehe, daß mich das etwas konfus macht.

Sowohl unter Windows wie auch unter FreeBSD fahre ich PHP in der "Modul-Variante". Wieso mag mein preg_replace() dann unter FreeBSD nicht funktionieren? Anderes, was das Script (oder andere Scripts) tun soll, macht es ja auch. Wenn ich die Funktion, die das preg_replace() enthält, mal ganz auskommentiere, tut das Script alles, was es tun soll.

Grüße aus Berlin

Christoph S.