über Variable Seite ausgeben

supercat1510

Erfahrenes Mitglied
Der Betreff ist zwar nicht sonderlich gelungen aber ich versuche hier nun mein Problem besser zu schildern.


Ich habe eine Datei die mir als Template dient und deren Platzhalter für den Inhalt Variablen sind - Grundlage ist das Tutorial dafür hier auf der Seite.

Ich habe das Script ein klein wenig modifiziert, um die Inhalte aus Dateien auszulsen. Das funktioniert so auch ganz gut, nur werden PHP-Befehle ignoriert.

PHP:
$text=$_GET['link'];
$template="layout";

function gettemplate($template,$endung="html",$dir="tpl"){
  return str_replace("\"","\\\"",implode("",file($dir."/".$template.".".$endung)));
}
function dooutput($template){
  echo $template;
}
function openfile($variable){
  global $text;
  $var_array=array("menu_oben"   =>   "tpl/menu_oben.htm",
                                  "menu_links"  =>   "tpl/menu_links.htm",
                                  "menu_rechts" =>   "tpl/menu_rechts.htm",
                                  "text"        =>   $text,
                                  "meta"        =>   "tpl/meta.htm"
                                  );
  $inhalt=$var_array[$variable];
  $zeiger=fopen($inhalt,"r");
  $inhalt=fread($zeiger,filesize($inhalt));
  return $inhalt;
}

$meta=openfile("meta");
$menu_oben=openfile("menu_oben");
$menu_links=openfile("menu_links");
$menu_rechts=openfile("menu_rechts");
$text=openfile("text");

eval("dooutput(\"".gettemplate("layout")."\");");

wenn ich anstelle von fopen/fread "include" verwende wird es allerdings immer bereits vor dem Layout ausgelesen, ebenso bei "readfile" (Den Grund dafür kennt).
Nun meine Frage: "Gibt es einen Befehl der wie include funktioniert, bzw. PHP-Anweisungen nicht ignoriert?"
 
Nebenbei:
PHP:
function dooutput($template){
  return $template;
}
Du könntest ja eine PHP Datei machen und alles was html Code ist in eine Variable packen, wenn du nun includest wird das html Code nicht gleich ausgegeben.
PHP:
$eins = "1";
$zwei = "2";
$drei = $eins+$zwei;
$html = '<font color="red">{PLATZHALTER}</font>';

Hoffentlich das eine gute Idee für dein Problem :>
 
Zuletzt bearbeitet:
Zurück