2013年6月9日 星期日

php 在後台(背景)執行指令 with passthru()

轉貼自:http://inspire.twgg.org/programming/php/item/400-php-in-the-background-background-execution-with-passthru.html




首先,要先知道怎麼在php裡執行外部指令
請看
稍微介紹一下 passthru()
passthru(PHP3 , PHP4)
passthru --- 執行外部程式並且顯示未加工的(raw)輸出

語法 :
void passthru(string command [, int return_var])
 
 
 
說明 :
passthru( )類似於exec( ),如果有給予參數return_var,則傳回的Unix命令的狀態將會放在這裡。從Unix命令輸出的是二進制資料,這些資料需要直接地傳送到瀏灠器 時,可用此函式來代替exec( )或system( )。用來執行像是pbmplus效用的指令,可以直接地輸出圖形資料流,設定content-type為image/gif,然後呼叫pbmplus程式 來輸出一個gif,你可以建立PHP程式直接地輸出圖形。
注意 : 如果你使用此函式來啟動一個程式,而且希望在背景裡(background)執行的時候離開它,你必須確定此程式的輸出是轉向(redirected)到一個檔案或是一些輸出的資料流,否則PHP將會懸掛(hang)直到程式執行結束。
 
因此如果想要在後台執行指令, 請參考此例
$cmd = 'upgrade > /dev/null &';
passthru($cmd);

沒有留言:

張貼留言