繁体   English   中英

PHP show从python脚本返回

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM