php eval

 
// Our PHP code inside a variable
$phpCode = '
class Foo
{
    private $name;
    public function __construct($name)
    {
        $this->name = $name;
    }
 
    public function hello()
    {
        return $this->name;
    }
}
 
$serializedOutput = null;
foreach (range(1, 100000) as $i) {
    $object = new Foo("name" . $i);
    $out[] = $object->hello();
}
$serializedOutput = serialize($out);
';
// end of variable
function fakeEval($phpCode) {
    $tmpfname = tempnam("/tmp", "fakeEval");
    $handle = fopen($tmpfname, "w+");
    fwrite($handle, "<?php\n" . $phpCode);
    fclose($handle);
    include $tmpfname;
    unlink($tmpfname);
    return get_defined_vars();
}
extract(fakeEval($phpCode));
echo strlen($serializedOutput);

  

posted @ 2017-04-14 14:39  Yeah,程序猿  阅读(223)  评论(0编辑  收藏  举报