PHP執行系統指令的有幾個常用的函式,如有:system函式、exec函式、popen函式,passthru,shell_exec函式他們都可以執行系統指令
#Exec函數
#Exec函數的語法為:(推薦學習: PHP程式設計從入門到精通)
exec ( string $command [, array &$output [, int &$return_var ]] ) = exec('ping 127.0.0.1',$output,$return_var)
這個函數的作用是執行command 參數所指定的命令。命令執行後的值為輸出值的最後一行,函數本身不會列印任何內容。
String、array和int是參數的資料類型,分別是字串、陣列和整數。
中括號的意思是如果前一個參數存在,那麼中括號中的參數可寫可不寫。例如:如果存在$command參數,則$output參數可有可無;如果不存在$output參數,則$return_var也不能出現。
Command:要執行的命令。
Output:如果提供了output 參數, 那麼就會用指令執行的輸出填入此數組, 每行輸出填滿數組中的一個元素。數組中的資料不包含行尾的空白字符,例如 \n 字符。請注意,如果陣列中已經包含了部分元素,exec() 函數會在陣列末端追加內容。如果你不想在陣列末端進行追加, 請在傳入 exec() 函數之前 對陣列使用 unset() 函數進行重設。
return_var:如果同時提供output 和return_var 參數, 指令執行後的回傳狀態會被寫入到此變數。如果指令成功執行,則狀態碼為0;如果指令執行失敗,則狀態碼為1。
System函數
System函數的語法是:
system ( string $command [, int &$return_var ] ) = system('ping -c 127.0.0.1',$return_var)
同C 版本的system() 函數一樣, 本函數執行command 參數所指定的命令, 且輸出執行結果。指令執行後的回傳值為輸出值的最後一行,函數本身也會列印全部的輸出值。
String和int是參數的資料類型,分別是字串和整數。
如果 PHP 運行在伺服器模組中, system() 函數也會嘗試在每行輸出完畢之後, 自動刷新 web 伺服器的輸出快取。
Command:要執行的命令。
return_var:如果提供 return_var 參數, 則外部指令執行後的回傳狀態將會設定到此變數中。如果指令成功執行,則狀態碼為0;如果指令執行失敗,則狀態碼為1。
Passthru函數
Passthru函數的語法為:
passthru ( string $command [, int &$return_var ] ) = passthru('ping 12.0.0.1',$return_var)
String和int是參數的資料類型,分別是字串和整數。函數本身會列印全部的輸出值,但函數沒有傳回值。
同 exec() 函式類似,passthru() 函式也是用來執行外部指令command的。當所執行的 系統指令輸出二進位數據, 且需要直接傳送到瀏覽器的時候, 需要用此函數來取代 exec() 或 system() 函數。
Command:要執行的命令。
return_var:如果提供 return_var 參數, Unix 指令的回傳狀態會被記錄到此參數。
Shell_exec函數
Shell_exec函數的語法為:
$output=shell_exec ( string $cmd ) = $output=shell_exec(`ping 127.0.0.1`) = $output=shell_exec("ping 127.0.0.1")
cmd是要執行的指令。
String是參數的資料類型,也就是字串。函數會在指令執行完成後將全部的輸出值輸入為字串輸入回傳值,本身並不會列印任何資訊。
Shell_exec函數的用法同反引號形同,注意是反引號(``)而不是普通單引號(’’)。
以上是php指令執行函數有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!