Hallo zusammen!
Direkt zuerst: Ich habe die Forensuche benutzt, nur bin ich diesmal auf kein brauchbares Ergebnis gekommen.
Mein Problem:
Ich baue momentan ein CMS mit Templatesystem. In einem Platzhalter möchte ich eine PHP Datei einbetten. Mein Templatesystem wird über die index.php verwaltet und auch darüber ausgegeben. Hier zum Verständnis der Quellcode:
Die Funktion $template->replace(); ersetzt einen String wie z.B. {NAVI} mit dem Inhalt $navi. Jetzt habe ich schon die Funktion file_get_contents("navigation.php") benutzt um den Inhalt der PHP Datei zu erhalten. Allerdings sehe ich im Design nichts von meinem vorgestellten Programmierten, sondern ich sehe im Quellcode den Quellcode der PHP Datei.
Dafür habe ich schon die Funktion eval(); entdeckt, weiss aber auch nach sorgfältigem lesen von php.net nicht genau wie ich diese Einsetzen kann. Sobald ich diese Funktion benutze setzt mir die Ausgabe den (kompilierten)Inhalt der z.B. navigation.php über das Design. Ich will aber den Inhalt im Platzhalter {NAVI} haben. Auch der Versuch mit folgendem Quelltext hat zu keinem brauchbaren Ergebnis geführt:
Ich weiss zwar das eval(); einen String als PHP Text ansieht und so kompiliert, aber ich weiss nicht wie ich das kompilierte Endergebnis als neuen String gezielt einbetten kann.
Ich bedanke mich für jede gut gemeinte Antwort!
Direkt zuerst: Ich habe die Forensuche benutzt, nur bin ich diesmal auf kein brauchbares Ergebnis gekommen.
Mein Problem:
Ich baue momentan ein CMS mit Templatesystem. In einem Platzhalter möchte ich eine PHP Datei einbetten. Mein Templatesystem wird über die index.php verwaltet und auch darüber ausgegeben. Hier zum Verständnis der Quellcode:
PHP:
require "inc.php";
$templatepath = "templates/teb/";
// Objekt erzeugen
$template = new template($templatepath,$templatepath."index.html");
// Datei einlesen
$template->readtemplate();
// Content in Variablen abspeichern
$navi = file_get_contents("navigation.php");
// Platzhalter ersetzen
$template->path();
$template->replace("NAVI", $navi);
$template->replace("CONTENT", file_get_contents("content.php"));
$template->replace("RIGHTBOX", file_get_contents("rightbox.php"));
$template->replace("FOOTER", file_get_contents("footer.php"));
// Seite ausgeben
$template->parse();
Dafür habe ich schon die Funktion eval(); entdeckt, weiss aber auch nach sorgfältigem lesen von php.net nicht genau wie ich diese Einsetzen kann. Sobald ich diese Funktion benutze setzt mir die Ausgabe den (kompilierten)Inhalt der z.B. navigation.php über das Design. Ich will aber den Inhalt im Platzhalter {NAVI} haben. Auch der Versuch mit folgendem Quelltext hat zu keinem brauchbaren Ergebnis geführt:
PHP:
// Content in Variablen abspeichern
$navi = file_get_contents("navigation.php");
eval("\$navi_output = \"".$navi."\";");
// Platzhalter ersetzen
$template->path();
$template->replace("NAVI", $navi_output);
$template->replace("CONTENT", file_get_contents("content.php"));
$template->replace("RIGHTBOX", file_get_contents("rightbox.php"));
$template->replace("FOOTER", file_get_contents("footer.php"));
// Seite ausgeben
$template->parse();
Ich weiss zwar das eval(); einen String als PHP Text ansieht und so kompiliert, aber ich weiss nicht wie ich das kompilierte Endergebnis als neuen String gezielt einbetten kann.
Ich bedanke mich für jede gut gemeinte Antwort!