Hello,
Ich will ja, dass in meiner HTML-Datei {content} steht, und das dann bewirkt, dass die content.php hier reingeladen wird.
So wie das in den meisten Content Management Sytemen der Fall ist.
Dann brauchst Du also eine Funktion, die zwar wie include() die eingebundene Datei parst, aber das Ergebnis nicht in die Datei schreibt, sondern in eine Variable
function get_parsed($file)
{
ob_start();
include ($file);
return ob_get_clean();
}
Das Parsen findet zum Laufzeitpunkt der Funktion statt.
$main['content'] = get_parsed('core/content.php');
$main['template'] = 'templates/standard/index.html'
$template = file_get_contents($main['template']);
str_replace('{content}',$main['content'],$template);
Probier mal aus, ob das funktioniert.
Das Problem wird nur sein, dass der Eingebundene File keine Redeclares enthalten darf, also keine Funktionsdefinitionen von Funktionen, die schon vorhanden sind im Script oder von Konstanten, die schon vorhanden sind im Script. Ich habe es aber noch nicht ausprobiert (mache ich jetzt)
Außerdem musst Du dringend darauf achten, dass keine Eingaben von außen in dem File landen.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
