2013-06-20 74 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,它允許你將輸出重定向到任意管道。