2010-10-07 69 views
0

我希望php能夠在後臺執行unix應用程序,並且可以訪問它的標準輸入/標準輸出,類似於子進程在python中的使用方式......這可能嗎?如果是的話如何?使用php訪問後臺應用程序stdin/stdout

+0

'popen'&'proc_open'是您需要控制管道時的最佳投注。 – Wrikken 2010-10-07 01:37:43

回答

0

你絕對可以exectute外部程序 http://php.net/manual/en/function.exec.php

可以除了PHP的CLI界面execture三個「流」,使用它可以互動或多或少,你會文件資源從返回的相同方式fopen()函數。該流被識別出來與字符串:

PHP://標準輸入(讀) PHP://標準輸出(寫) PHP://標準錯誤(寫)

隨着PHP 4.3.0+ CLI二進制,這三個流是自動可用的,分別用常數STDIN,STDOUT和STDERR標識。以下是我可以使用STDOUT來解決上面的腳本,使其能正常運行在Windows上:

<?php 
$i = 0; 
while ($i < 10) { 
    // Write some output 
    fwrite(STDOUT, $i."\n"); 
    sleep(1); 
    $i++; 
} 
?> 

http://articles.sitepoint.com/article/php-command-line-1

PK

0

嘗試是這樣的:exec('unix_app | python_script > /dev/null &');

編輯:

只要再次閱讀你的問題,並意識到你d不想管道入Python腳本。如果您在後臺啓動進程,您的PHP腳本將繼續執行其自身,並且將無法接收STDIN/OUT。您可以將它轉換爲不同的PHP腳本,就像我上面的示例中那樣,然後您將再次訪問STDIN。