2011年12月6日 星期二

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


首先,要先知道怎麼在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)直到程式執行結束。

因此如果想要在後台執行指令, 請參考此例
<strong style="font-weight: bold;">$cmd = 'upgrade > /dev/null &';
passthru($cmd);</strong>

沒有留言: