Hello,
Den macht es schon--include() arbeitet direkter und bindet den vermeintlichen PHP-Code umgehend ein. eval() erfordert noch Umwege über echo.
Was ist denn daran ein Umweg?
Include sachließt den PHP-Parser, bindet die Datei an der entsprechenden Stelle ein
und öffnet den Parser wieder. Das führt dann zu einer direkten Ausgabe an die Standard-Ausgabe.
Eval übernimmt eine Variable und bindet sie an der entsprechenden Stelle ein, ohne den Parser
vorher zu schließen. Wenn die Variable als erstes das Schließen des PHP-Parsers enthält,
und ihn am Ende wieder "einschaltet", dann verhält sich eval($variable) genauso, wie include.
versuch mal:
<?php ### eval.php ###
$str = '?><p>Hallo <?php echo $string ?></p><?php echo sqrt(33);';
$string = "hallo Ashura!";
eval ($str);
?>
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau