Antworten auf deine Fragen:
Neues Thema erstellen

eval() richtig verwenden. WIE?

v36374

Noch nicht viel geschrieben

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:

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();
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:
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!
 

netbandit

Aktives Mitglied

AW: eval() richtig verwenden. WIE?

eval ist ein Notnagel;

warum speicherst Du Deine generierten Daten in der navigation.php nicht gleich in $navi und holst diese z.B. per include('navigation.php');

Heisst anstelle von

PHP:
$navi = file_get_contents("navigation.php");
fügst Du dann

PHP:
include('navigation.php');
ein.

Und die Daten stehen im übrigen Script in $navi zur Verfügung (erste Script von Dir)

Grüße
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben