[英]PHP show return from python script
我无法获取php来显示我的python脚本的完整结果,仅打印了最后一个基本的打印语句。 我在这里做错了什么? 为什么PHP无法显示python脚本的输出?
的PHP
$result = exec('python list.py');
echo $result;
list.py
import subprocess
print "start"
a = subprocess.Popen(["ls", "-a"], stdout=subprocess.PIPE)
a.wait()
result_str = a.stdout.read()
print result_str
print "stop"
该python脚本的命令行输出如下
start
...filename
...filename
...etc...etc
stop
来自执行python脚本的php输出仅
停
谢谢
exec
将始终 从命令结果返回最后一行 。 因此,如果您需要从执行的命令中获取每一行输出。 然后,您需要编写如下内容:
$result = exec('python list.py', $ouput);
print_r($output)
根据执行文档
string exec ( string $command [, array &$output [, int &$return_var ]] )
如果存在
output
参数,则命令的输出的每一行都将填充指定的数组。 尾随空格(例如\\ n)不包含在此数组中。 请注意,如果数组已经包含一些元素,则exec()将追加到数组的末尾。 如果您不希望函数追加元素,请在将数组传递给exec()之前在数组上调用unset()。
您需要将$result
作为参数传递给exec()
否则只会得到最后一条语句。
exec('python list.py', $result);
print_r($result);
这将得到一个输出数组, $result[0]
将包含stop
而$result[sizeof($result)-1]
将包含stop
,介于两者之间的所有内容都将包含程序输出的其余部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.