exec
執行外部程式。
語法: string exec(string command, string [array], int [return_var]);
# 傳回值: #字串
函數類型: 作業系統與環境
內容說明
本函數執行輸入command 的外部程式或外部指令。它的回傳字串只是外部程式執行後回傳的最後一行;若需要完整的回傳字串,可以使用 PassThru() 這個函數。
要是參數 array 存在,command 會將 array 加到參數中執行,若不欲 array 被處理,可以在執行 exec() 之前呼叫unset() 。若是 return_var 跟 array 二個參數都存在,則執行 command 之後的狀態會填入 return_var 中。
值的注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。
問:
我如何在exec("ping $PingDNS", $Info);執行後取得一個回傳值,這個回傳值能夠標記它是否ping通或沒有ping通,exec只能回傳外部程式執行後傳回的最後一行啊,help me! ! ! !
答案1:
函數:passthru()
------------------------------ --------------------------------------------------
程式執行功能函數庫
passthru
執行外部程式並不加處理輸出資料。
語法: string passthru(string command, int [return_var]);
傳回值: 字串
函數種類: 作業系統與環境
內容說明
本函數類似Exec() 用來執行command 指令,並輸出結果。若是 return_var 參數存在,執行 command 之後的狀態會填入 return_var 中。若輸出的資料是二進位的資料,並且需要輸出到瀏覽器中的話,使用本函數就相當合適了。例如使用 pbmplus 工具來執行指令,並傳回二進位的圖形資料。可以先設定回傳資料的標頭 (header) 為 Content-type: image/gif,然後呼叫 pbmplus 程式處理圖形資料,並將二進位的圖形資料直接回傳瀏覽器。
exec("ping $PingDNS", $Info);
將傳回一個字串,形如:
Reply from x.x.x.x: bytes=32 time<10ms TTL=128
Bad IP address expert.csdn.NET
...
根據這些串的內容可分析出來
另外$Info中保留有執行的過程
附:
今天我在前台PHP傳送訊息給後台C的時候用到的該函數:
後台要求在使用者操作介面之後即寫作業日誌後要向後台C發一個訊息
$juser = $_SESSION['wms_user'];
exec("/usr/local/apam_new/bin/apam_debug -a operate:$juser,1");
以上是php中exec()函數以及取得其傳回值實例用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!