Hallo,
mal wieder ein hoffentlich kleines Problem von mir:
Ich möchte ein Templatesystem basierend auf einer Templateklasse realisieren. Innerhalb der Templates sollen dann Variabelen wie {var} auftauchen, welche dann mittels preg_replace auf den jeweils gültigen Wert gesetzt werden sollen.
Mein Anfang sieht bisher so aus:
Nun werden die Klammer {} weggeschnitten und es belibt nur der Name der Variabelen übrig.
Da ich aber nicht den Namen der Variablen, sondern den Inhalt der PHP-Variablen haben möchte, habe ich es mit einer variablen Variablen probiert:
Die Ausgabe ist nun allerdings "$var" und nicht der Inhalt selbiger Variablen.
Auch mit Klammern a la:
oder ohne Hochkommata a la:
geht es nicht, da ich dann eine Fehlermeldung bekomme:
Ich denke, dies liegt daran, dass 1 kein gültiger Variablenname ist. Der nächste Ansatz waren also named capture groups, damit bekomme ich dann aber leider weder Fehler, noch irgendeine sontige Ausgabe
Der Versuch sah folgendermaßen aus:
Ich hoffe ich habe mich verständlich ausgedrückt und mir kann jemand helfen
Vielen Dank schonmal im Vorraus!
mfg
Gsus
mal wieder ein hoffentlich kleines Problem von mir:
Ich möchte ein Templatesystem basierend auf einer Templateklasse realisieren. Innerhalb der Templates sollen dann Variabelen wie {var} auftauchen, welche dann mittels preg_replace auf den jeweils gültigen Wert gesetzt werden sollen.
Mein Anfang sieht bisher so aus:
PHP:
echo preg_replace("/\{([a-z0-9]+)\}/", "$1", $string)."<br />";
Da ich aber nicht den Namen der Variablen, sondern den Inhalt der PHP-Variablen haben möchte, habe ich es mit einer variablen Variablen probiert:
PHP:
echo preg_replace("/\{([a-z0-9]+)\}/", "$$1", $string)."<br />";
Auch mit Klammern a la:
PHP:
echo preg_replace("/\{([a-z0-9]+)\}/", "${$1}", $string)."<br />";
PHP:
echo preg_replace("/\{([a-z0-9]+)\}/", $$1, $string)."<br />";
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in
Ich denke, dies liegt daran, dass 1 kein gültiger Variablenname ist. Der nächste Ansatz waren also named capture groups, damit bekomme ich dann aber leider weder Fehler, noch irgendeine sontige Ausgabe
Der Versuch sah folgendermaßen aus:
PHP:
echo preg_replace("/\{(?<var>[a-z0-9]+)\}/", $$var, $string)."<br />";
Ich hoffe ich habe mich verständlich ausgedrückt und mir kann jemand helfen
Vielen Dank schonmal im Vorraus!
mfg
Gsus