s.oliver: \\1 von preg_replace() an eigene Funktion übergeben

Beitrag lesen

Servus,

Mein funktionierender Code sieht nun so aus:
$filecontent=preg_replace("/{file:([[:alnum:]]+.tpl)}/e",
"parse_file('\1')", $filecontent);

besser wäre es wohl, gleich preg_replace_callback() zu benutzen; mich
erstaunt aber eher, dass der POSIX Ausdruck [[:alnum:]] tatsächlich mit
preg_replace funktionieren soll.

Was mir immer noch ein Rätsel bleibt ist, warum es mit der Funktion
test() ohne Probleme geklappt hat, die hätte eigentlich auch /e
benötigt, zumindest nach meinem Verständnis. Weiß jmd. warum es in
diesem Fall ohne funktionierte?

Kann ich mir eigentlich nicht vorstellen - ohne den Eval-Paramater,
wird das Ersatzmuster immer als String behandelt.

Grüsse