exec
(PHP 4, PHP 5, PHP 7, PHP 8)
exec — 執行一個外部程式
說明
exec(string
$command
, array &$output
= ?, int &$return_var
= ?): string
exec() 執行
command
參數所指定的命令。
參數
-
command
-
要執行的命令。
-
output
-
如果提供了
output
參數, 那麼會用命令執行的輸出填充此陣列, 每行輸出填充陣列中的一個元素。 陣列中的數據不包含行尾的空白字元,例如\n
字元。 請注意,如果陣列中已經包含了部分元素,exec() 函式會在陣列末尾追加內容。如果你不想在陣列末尾進行追加, 請在傳入 exec() 函式之前 對陣列使用 unset() 函式進行重置。 -
return_var
-
如果同時提供
output
和return_var
參數, 命令執行后的返回狀態會被寫入到此變數。
範例
示例 #1 exec() 例程
<?php
// 輸出執行中的 php/httpd 程序的建立者使用者名稱
// (在可以執行 "whoami" 命令的系統上)
echo exec('whoami');
?>
註釋
警告
當傳入使用者提供的數據到本函式時,應使用 escapeshellarg() 或 escapeshellcmd() 來防止使用者欺騙系統執行任意命令。
注意:
如何程式使用此函式啟動,爲了能保持在後臺執行,此程式必須將輸出重定向到檔案或其它輸出流。否則會導致 PHP 掛起,直至程式執行結束。
注意:
在 Windows 下,exec() 函式會先啟動 cmd.exe 來執行指定的命令。如果你希望啟動一個額外的應用而不用先啟動 cmd.exe 可使用 proc_open() 函式加上
bypass_shell
參數。
參見
- system() - 執行外部程式,並且顯示輸出
- passthru() - 執行外部程式並且顯示原始輸出
- escapeshellcmd() - shell 元字元轉義
- pcntl_exec() - 在目前程序空間執行指定程式
- 執行運算子