Php Exec功能

时间:2013-06-28 17:21:23

标签: php python exec return-value

我无法理解为什么php中的返回值不起作用。有人能帮助我吗?

<?php
exec("xyz.py",$output,$return);
foreach($output as $item){
echo "$item"; 
}
echo $return;
?>

xyz.py的脚本如下:

def func():
  print ('Hello')
  return 21
func()

无论xyz.py返回什么值

,输出总是Hello0

提前致谢。

3 个答案:

答案 0 :(得分:2)

根据PHP docs,exec的第三个参数(在您的示例中为$return)的工作方式如下:

  

如果return_var参数与输出参数一起出现,则执行命令的返回状态将写入此变量

由于你的python程序运行正常,返回状态应为0(无错误)。

这可能是你想要的:

import sys
def func():
  print ('Hello')
  return 21
sys.exit(func())

答案 1 :(得分:0)

返回参数表示exec()函数的状态,而不是程序返回的状态。

-1 =错误

0 =成功

答案 2 :(得分:0)

将此附加到您的执行字符串,该字符串允许您捕获任何错误输出:

2>&1 &

根据你的例子:

exec('xyz.py 2>&1 &', $output);
echo $output;