eval() - oder doch lieber ganz anders
Rainer
- php
0 Rainer
Hallo allerseits,
ich möchte in einem String vorkommende "Variablen" auslesen und evtl. darin enthaltenen HTML- und PHP-Code (auch Datenbankabfragen usw.) ausführen. Das kommt nicht immer vor und kann auch mal reines HTML, ohne PHP, sein. per include() ist da ja nicht zu machen. Also dachte ich "mal mit eval() probieren. Aber das scheint nicht zu gehen. Habe ich einen (Denk)Fehler bei der Sache an sich oder im Code?
Gruß Rainer
Ein Beispiel:
$str = "Ich bin ein Text [#WG1#] der hier weitergeht und [#WG2#] nach WG2 beendet wird.";
//Anzahl der "Variablen ermitteln
preg_match_all("/\[#(.*)#]/iUs", $str, $matches);
$ax=count($matches[0]);
//wenn notwendig
if($ax > 0){
$e1 = explode("[#",$str);
//erster Teil vor der ersten "Variable"
$txt = "$e1[0]";
//"Variablen" verarbeiten
for($t = 1; $t <= $ax; $t ++){
$e2 = explode("#]",$e1[$t]);
$wstr = file_get_contents("../Ordner/$e2[0].php");
#eval("$eval_code = \"$wstr\"");
#$txt .= "$eval_code";
#eval funktioniert nicht
$txt .= "$wstr"; // funktioniert bei reinem HTML
//der Teil nach der "Variable"
$txt .= "$e2[1]";
}
}else{
$txt = "$str";
}
echo"$txt";
Hallo,
hat sich erledigt.
Alles brav nacheinander abarbeiten und ausgeben - dann get es auch mit include().
Gruß Rainer