从PHP webapp中读取Python命令的输出

时间:2014-12-05 11:20:36

标签: php python shell-exec

我试图从php webapp读取python输出。

我在php代码中使用$out = shell_exec("./mytest")来启动应用程序,并在python应用程序中使用sys.exit("returnvalue")来返回值。

问题是$out不包含我的返回值。 相反,如果我尝试使用$out = shell_exec("ls")$out变量包含ls命令的输出。

如果我从终端运行./mytest它可以工作,我可以在终端上看到输出。

1 个答案:

答案 0 :(得分:1)

sys.exit("returnvalue")

使用带sys.exit的字符串表示错误值。因此,这会在returnvalue中显示stderr,而不是stdoutshell_exec()默认仅捕获stdout

您可能希望在Python代码中使用它:

print("returnvalue")
sys.exit(0)

或者,您也可以在PHP代码中使用它将stderr重定向到stdout

$out = shell_exec("./mytest 2>&1");

(事实上,做两个可能是最好的,因为如果出现意外情况,stderr消失可能会非常混乱。)