de.comp.lang.php.* FAQ

7.9. Wie kann ich einen String als PHP-Code ausführen?

Keywords: String | Code | Datenbank | Datei | ausfuehren

Antwort von Johannes Frömter

Mit der Funktion eval() kann man PHP-Code, der in einer Variablen als String vorliegt, ausführen lassen. eval() schaltet direkt in den PHP-Modus, d. h. PI-Tags (processing instructions, üblicherweise <?php und ?>) müssen im String nicht enthalten sein. Der String darf aber PIs enthalten, um vom PHP- in den HTML-Modus (und zurück) zu wechseln; beginnt der String mit HTML, so ist zuerst ein schließender PI-Tag nötig:

$html_php_mix = '<h1> <?php echo "GROSS"; ?> </h1>';
eval("?> $html_php_mix <?php ");

Der öffnende PI-Tag zum Schluss ist nicht unbedingt notwendig - wenn man ihn schreibt, dann allerdings ist das Leerzeichen danach wichtig. Alle PHP-Anweisungen müssen korrekt mit einem Semikolon beendet werden (in normalem PHP-Code darf das Semikolon nach der letzten Anweisung fehlen).

Achtung: Der Funktion eval() darf man nur absolut vertrauenswürdigen Code übergeben; Code aus unbekannter Quelle kann äußerst gefährliche Befehle wie z.B. unlink($_SERVER['PHP_SELF']), mysql_drop_db() oder system() enthalten und großen Schaden anrichten.

Valid HTML 4.01! Valid CSS!

7.9. Wie kann ich einen String als PHP-Code ausführen?
http://www.php-faq.de/q/q-string-ausfuehren.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team