php exec()安全

时间:2012-11-27 15:07:42

标签: php python exec

我正在尝试从php执行py文件 这是我的代码:

//usage python my.py var1 var2
$libre = 'python ../../../../root/py/my.py '.$var1.' '.$var2.'';
$cleanlibre = escapeshellarg($libre);
echo exec($cleanlibre);

有什么问题? 为什么一无所获?

我还需要知道如何安全执行exec。感谢。

- 编辑 -

使用passthru

$libre = 'python ../../../../root/py/mech.py '.$var1.' '.$var2.'';
$cleanlibre = escapeshellarg($libre);
passthru($cleanlibre, $result);
echo $result;
//returned 127 <- i don't know where thats from.

2 个答案:

答案 0 :(得分:2)

escapeshellarg只能用于转义参数,而不是整个命令。

//usage python my.py var1 var2
$libre = 'python ../../../../root/py/my.py '.escapeshellarg($var1).' '.escapeshellarg($var2).'';
echo exec($libre );

答案 1 :(得分:0)

exec在函数的第二个参数中返回结果,请参阅http://php.net/manual/en/function.exec.php