PHP: Equivalent of include using eval

后端 未结 8 1272
清酒与你
清酒与你 2020-12-06 05:56

If the code is the same, there appears to be a difference between:

include \'external.php\';

and

eval(\'?>\' . file_get_conten

8条回答
  •  悲&欢浪女
    2020-12-06 06:13

    Only eval('?>' . file_get_contents('external.php')); variant is correct replacement for include.

    See tests:

    ',
        '',
        'some text',
    );
    
    $tempFile = tempnam('/tmp', 'test_');
    
    print "\r\n" . "Include:" . "\r\n";
    foreach ($includes as $include)
    {
        file_put_contents($tempFile, $include);
        var_dump(include $tempFile);
    }
    
    unlink($tempFile);
    
    print "\r\n" . "Eval 1:" . "\r\n";
    foreach ($includes as $include)
        var_dump(eval('?>' . $include . '' . $include));
    
    print "\r\n" . "Eval 3:" . "\r\n";
    foreach ($includes as $include)
        var_dump(eval('?>' . $include . '

    Output:

    Include:
    some textint(1)
    some textint(1)
    some textint(1)
    some text

提交回复
热议问题