PHP Code aus einem String heraus ausführen
Wie kann ich PHP Code der in einer Datenbank gespeichert ist ausführen?
Dieses funktioniert mit der Funktion eval von PHP.
eval wertet einen String aus, als wäre er PHP-Code.
Aufbau:
mixed eval(string,code_str)
Beschreibung:
Beim Gebrauch von eval() gilt es einige Faktoren zu beachten.
Die Zeichenkette code_str muss gültigen PHP-Code enthalten,
einschließlich syntaktisch richtiger Begrenzungszeichen (also incl. „;“-Abschluss-Zeichen für einzelne Anweisungen,
sonst bricht der PHP-Parser in der folgenden Zeile mit einem Fehler ab).
Die innerhalb von eval vorgenommenen Variablen-Zuweisungen nach durchlauf
auch im Hauptskript ihre Gültigkeit behalten.
Eine return-Angabe beendet sofort die Auswertung des Strings.
Mit PHP4 können sie ein return verwenden,
um das Ergebnis der Funktion eval() zu erhalten.
In PHP3 ist eval() nämlich vom Typ void und liefert nichts zurück.
Beispiel:
- $page = ‚webmaster-eye.de‚;
- $was = ‚Tutorials‚;
- $str = ‚$page bietet viele $was an.<br />‚;
- echo $str;
- eval („\$str=\“$str\“;„);
- echo $str;
- ? />
Das Script gibt folgendes aus:
$page bietet viele $was an.
webmaster-eye.de bietet viele Tutorials an.