首頁  >  文章  >  後端開發  >  php中exec()函數以及取得其傳回值實例用法詳解

php中exec()函數以及取得其傳回值實例用法詳解

伊谢尔伦
伊谢尔伦原創
2017-06-27 09:24:034985瀏覽

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");

################################################################################################################################################################################## # ##//下面是我的測試方法:######//看有沒有將訊息發到後台######    exec("/usr/local/apam_new/bin/apam_debug -a operate: $juser,1",$info);  ######    echo var_dump($info);######結果顯示訊息發至後台,並將後台的print的訊息輸出到了fireFox的### Firebug###欄######主要是加強對php的exec()函數的了解! ###

以上是php中exec()函數以及取得其傳回值實例用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn