PREG_REPLACE Backreference Datum Funktion
-
27-10-2019 - |
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.
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