在PHP中捕获Python脚本输出并避免双输出

时间:2013-06-20 06:16:45

标签: php python

我正在使用system()在PHP中执行Python脚本。为了获得我的Python脚本的结果,我使用print命令并在PHP中捕获结果。这是我的代码:

Python(test.py)

import sys
name = sys.argv[1]
print 'Your name is ' + name

PHP

$result = system('python test.py John');
echo $result;

/* PHP Output */
Your name is John
Your name is John

如您所见,输出加倍。第一个是由Python脚本本身生成的,第二个是由echo命令生成的。有没有办法如何避免这种双倍的输出?我只是想捕获结果,并将在我的PHP脚本上的某个地方使用它。

**注意:只是想知道是否有另一种方法可以将Python脚本输出传递给PHP变量。我唯一的目的是将输出放在PHP变量上。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用exec功能。它还执行命令执行,但与 system 不同,不会将内容输出到标准输出。唯一的缺点是返回是stadard输出中每一行的数组(不是字符串,如 system 。您也可以尝试proc_open,这允许您将输出重定向到任意管道。