2013-06-20 65 views
0

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

的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变量上。

+0

http: //stackoverflow.com/questions/7765473/error-on-using-exec-to-call-python-script – RST

回答

0

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