EVAL FUNKTION ?
-
DieLösung(Man^2) schrieb:
<?PHP if($site == "startseite") include("includes/startseite.php"); if($site == "kontakt") include("includes/angebote.php"); else include("includes/startseite.php"); ?>
Dein if-else-syntax ist sehr gefährlich! In diesem Fall kannst du dir auf jeden Fall das erste if sparen
Lösung: entweder mit elseif oder mit verschachtelten if-else
(ich würde dir auch { } empfehlen, um die Sachen eindeutig zuzuordnen - ist bei komplexem Code viel übersichtlicher)
Hier würde ich aber ein switch bevorzugen:<?php switch($site) { case 'startseite': include("includes/startseite.php"); break; case 'kontakt': include("includes/angebote.php"); break; default: include("includes/startseite.php"); break; } ?>
Falls dein $site direkt aus dem Wert der URL stammt (register_globals uaf on): Nimm lieber $_GET['site'] (ab PHP >= 4.1.0) da register_globals bei neuen Versionen und bei vielen WebServern defaultmäßig auf off eingestellt ist
-
Hallo.
Wen es interessiert ich habe es jetzt so gemacht:<?PHP if(file_exists("includes/".$msite.".php")) { include("includes/".$msite.".php"); } else { include("includes/startseite.php); } function GetTemplate($TplFile) { return str_replace("\"","\\\"",implode("",file($TplFile))); } function DoOutput($TplFile) { echo $TplFile; } eval ("DoOutput(\"".GetTemplate("templates/20030810.tpl")."\");"); ?>
Er meldet mir nun zwar den Fehler:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in index.php on line 14
Aber ich denke das bekomme ich auch nor hin!
Über weitere Kommentare würde ich mich freuen ....
Grüße.
-
PS:
Wenn das alles so funktioniert werde ich mich mit dem Komantar von Lutz beschäftigen:Edit:
Ich würde die Templates nicht so einlesen wie du das machst. Das ist nämlich relativ lahm. fread() währe bedeutend schneller. (Ich habs mit einer 700mb großen Textdatei ausprobiert: implode(file()): timeout; fread(): 3sek;)Grüsse.
-
result=eval('return "'.$buffer.'";');
Gruß Jens
-
Ich habe das ja jetzt mit dem include("includes/startseite.php") Befehl gelöst!
Ich benutze Ihn in vielen Dateien um mehr Übersicht zu haben und um später einfacher (globaler) Änderungen vornehmen zu können.
Wie sieht es denn mit der Geschwindigkeit aus. Ist das include(); ok oder langsam ?
-
Das ist schon ok