我使用PHP的exec($cmd, $output)
函数从PHP脚本中运行一些python脚本。处理Python异常/ PHP中的错误
documentation指出程序的所有输出都写入$output
阵列。这工作正常,但是,如果Python代码引发异常/错误,该函数似乎只返回NULL,没有关于异常的任何信息。
例如:
run_python.py
print('starting python')
x = 1/0 #This will raise an error
print('complete python')
从交互式PHP壳运行它产生以下:
php > $output = '';
php > $ret_val = exec('python run_python.py', $output);
Traceback (most recent call last):
File "run_python.py", line 2, in <module>
x = 1/0
的$output
阵列只包含starting python
,和$ret_val
不包含任何内容。
这对于交互式shell是可以的,但是我正在运行web界面中的代码,并且从不显示错误信息。有什么方法可以捕获该错误,然后使用echo
进行显示?
我试过shell_exec和passthru,但没有成功。