Hello,
Aber für eval() sind die Tags von PHP genau verkehrt herum, da eval() einen gültigen PHP-Code erwartet, Du dort aber im Prinzip einen gültigen HTML-Code stehen hast.
Entweder, du speicherst das gleich anders herum in Deiner Variablen,
$code = "if ($_SESSION['loginstat'] == '1') { echo " IP: 127.0.0.1"; }";
oder aber du schreibst Dir eine Funktion, die die PHP-Tags invertiert, also aus einem öffnenden Tag einen schließenden macht und umgekehrt. Das wird aber gar nicht so einfach, weil diejenigen innerhalb von Strings i.d.R. nicht invertiert werden dürfen.
Das mit dem "Invertieren" ist ja noch ganz andern, denn wenn man genauer darüber nachdenkt, darf ja aus einem "<?php" kein "?>" werden, sondern gar nichts, und aus einem "{?>" kein "{<?php", sondern ein "{ echo ", usw.
Vielleicht finden sich noch ein paar Mitdenker? Würde vereinfacht ein
$file = file_get_contents(<php-file.php>);
$_search = array('<?php','?>');
$_replace = array('',' echo ');
$code = str_ireplace($_search, $_replace, $file);
reichen, um aus einem "normalen" PHP-File einen für eval() brauchbaren Ausdruck zu machen?
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg