Mailinglisten-Archive |
Hallo Ringo, Ringo Großer schrieb: > Lutz Zetzsche wrote: >> 3. mit str_replace() die Ersetzung vornehmen und das Ergebnis >> ausgeben: >> >> $ausgabe = str_replace($namen, $werte, $datei); >> echo $ausgabe; > > > Ich meine aber, dass hierbei ungefüllte Platzhaltervariablen im Template > erhalten bleiben und dann ungewollt im Browser erscheinen. das ist in zweierlei Hinsicht richtig... ;-) Zuerst zur ersten Variante, an die Du dachtest: > Michael wird also vielleicht von Templateseite und mit einem > preg_match_all > herangehen müssen, um alle enthaltenen Platzhaltervariablen zu finden. > Voerfügbare Werte werden dann eingefüllt, alle übrigen durch einen leeren > String ersetzt. Das wäre eine Möglichkeit. Ich löse das bei mir aber immer so, daß ich immer für alle Variablen, die im Template vorkommen, Werte setze. Dieser Wert kann natürlich leer sein. Damit spare ich mir den regulären Ausdruck. Ich denke mal, es kann Fälle geben, wo ein solches Maß der Dynamik in der Template Engine gewünscht ist, daß mein Ansatz nicht reicht. In dem Fall kann man dann z.B. Deine Lösung nehmen. Nun aber zu einem zweiten Punkt, auf den ich aufgrund Deines Hinweise gekommen bin... ;-) Im Array steht bei Michael vermutlich als Schlüssel 'SCHLUESSEL', während im Template '{SCHLUESSEL}' steht. D.h. mein Vorschlag mit den array_keys() funktioniert nur, wenn der Array-Schlüssel dann entsprechend '{SCHLUESSEL}' wäre! Diese Harmonisierung ist aber sicherlich auch kein großer Akt, außer man ist Dogmatiker. :-) Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive