Forum: Programmieren allgemein
by alcaeus,
8. Jul 2005
Moin Julius,
ja, da hast du (vielleicht) Recht. Nachdem ich aber selbst die Template-Variablen bestimme, hab ich das Problem nicht *g*
Ich arbeite zur Zeit aber noch an einer erweiterten Version der Expression, um auch verschachtelte Ausdruecke unter Verwendung mehrerer Variablen zuzulassen ;)
Greetz
alcaeus
Forum: Programmieren allgemein
by alcaeus,
8. Jul 2005
So, ich nehme jetzt einfach den Weg drumrum, und arbeite mit 3 expressions:
$text = "blah blah {SOMEVAR}";
$text = preg_replace('##is', '_special_if_\\1', $text);
$text = preg_replace('#\{(*?)\}#is', 'BAR', $text);
$text = preg_replace('#_special_if_(+)#is', '', $text);
Das ergibt nach dem ersten replace das:
blah _special_if_FOO blah {SOMEVAR}
Nach dem zweiten:
blah _special_if_FOO...
Forum: Programmieren allgemein
by alcaeus,
8. Jul 2005
Ja, hast du :lol:
das da:
blah {FOO} blah
wird bei deinem Code naemlich auch nicht ersetzt ;)
Ich studiere mich immer noch durch die PCRE-Doku, aber so langsam kommt mir vor, dass das nicht geht. :-? Ich versuchs mal weiter, falls es nicht klappt, wird das viel Denkarbeit geben, aber erstmal gibts einen grossen Dank fuer eure Hilfe. Falls noch jemandem was einfaellt, koennt ihr es aber...
Forum: Programmieren allgemein
by alcaeus,
8. Jul 2005
@Julius: das hab ich schon mal probiert. Auch wenn die Templates gecached werden, das Cachen dauert mehr als 30 Sekunden wenn ich das in jeder Zeile mache :wall:
In $code steht eben der gesamte Text der Template-Datei drin, und es waere eben schoen, wenn ich das in der gleichen Expression machen koennte. Egal, ich zwinge mich jetzt mal durch die PCRE-Doku, jetzt habt ihr eine Weile Ruhe :lol:
...
Forum: Programmieren allgemein
by alcaeus,
8. Jul 2005
Hallo Dax,
vielleicht liegt es auch nur daran, dass ich in diesem Fall nicht mehr \\1 verwenden darf, um mit dem Match zu arbeiten. Ich zeige mal die gesamte Zeile:
$code = preg_replace('#\{(*?)\}#is', "\$this->_tpldata", $code);
Auf alle Faelle wird bei deiner Loesung leider auch das "<!-- IF " als Match erkannt und deshalb verwendet :(
Hast du vielleicht sonst noch irgendwelche...
Forum: Programmieren allgemein
by alcaeus,
8. Jul 2005
Hallo ihr,
ich scheitere langsam an einer regulaeren Expression. Zur Zeit sieht sie so aus:
$code = preg_replace('#\{(*?)\}#is', $something, $code);
Damit werden in der Template-Engine vom phpBB die Variablen ("{SOMEVAR}") ersetzt. Nachdem ich zur Zeit versuche, If-Bloecke einzubauen und dort auch solche Variablen erlaubt sein sollen, duerfen sie nur ersetzt werden, wenn kein "<!-- IF"...