PHP Befehle in Templates

Wolfsbein

Erfahrenes Mitglied
Folgendes Prob. Ich habe hier show.php. Diese Datei erzeugt beim Aufruf HTML Quelltext öffnet template.tpl und ersetzt ##blabla## durch den erzeugten Quelltext. Das haut soweit hin. Wenn ich jetzt aber in template.tpl <?php echo "test"; ?> schreibe, dann steht das als unbekanntes Tag im Quelltext, wenn ich das PHP-Tag weglase steht es als plain text da. Wenn ich template.php hernehme, dann haut es auch nicht hin. Wie umgehe ich das?
 
welches template system benutzt du denn ? ein selbstgebautes ?
dann musst du wohl das template durchparsen und die <? ?> sachen extrahieren, mit eval() auswerten und wieder reinschreiben ...
 
Das steht aber irgendwie im Widerspruch zu der Idee hinter Templates, nämlich dass PHP-Code und HTML sauber voneinander getrennt werden... Muss sich auch ohne PHP-Tag im Template lösen lassen.


reima
 
Es handelt sich um ein Gästebuch. show.php zeigt die Einträge an. Damit man es in jede beliebige Seite integrieren kann wird die Ausgabe in ein Template = beliebige Datei mit Navigation etc. geparst. Wenn aber das Design auch auf PHP basiert, dann haut es aufgrund des Problems von oben nicht hin. Wie könnte man das dann anders machen?
 
@gecko: Ich habe es jetzt mal mit deinem Tipp versucht.
Code:
eval("\$TEMPLATE;");
echo $TEMPLATE;
In $TEMPLATE ist die Templatedatei. In dieser Datei steht: <?php echo "TEST.<br />"; ?>. Bei der Ausgabe wird das aber nur im Quelltext angezeigt. Lasse ich die PHP-Tags weg, wird es normla ausgegeben.
Könntest du das noch etwas genauer erklären, was du damit gemeint hast?
 
argl ;)

du musst auch nicht das komplette template auswerten, sondern nur die php teile.

mit einem regulaeren ausdruck das php extrahieren, auswerten und wieder ins template schreiben...
 
Jo danke, mein Fehler. Aber das macht das ganze natürlich sehr komplizert, da ich den Teil vor den PHP-Tags und den danach speichern muss und dann wieder zusammenfügen. Ich werde wohl darauf verzichten.
 
Zurück