Frage

PHP 5.2.15

Ich versuche {Datum [f]} durch die Datumsfunktion zu ersetzen.

Ich habe das Muster, das großartig funktioniert.

preg_replace('/({date\[(.*?)\]})/', date(${2}), $subject);

Ich habe preg_replace_callback ausprobiert, aber es scheint nicht zu funktionieren, selbst wenn ich create_function () verwende

Ich bekomme hauptsächlich undefinierte Fehler bei meinen Methoden.

War es hilfreich?

Lösung

Sie brauchen die /e Modifikator. Und der Ersatzausdruck muss eine Zeichenfolge sein:

= preg_replace('/(\{date\[(.*?)\]})/e', 'date("$2")', $subject);

Beachten Sie, dass Sie auch vergessen haben, dem ersten zu entkommen { geschweifte Klammer.

Siehe die manuellen Beispiele für preg_replace#105490. Oder wie preg_replace_callback Rückrufe müssen den Match -Parameter auspacken (was nach Ihrem ursprünglichen Problem klingt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top