執行一個外部程式

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

如果同時提供 outputreturn_var 參數, 命令執行后的返回狀態會被寫入到此變數。

返回值

命令執行結果的最後一行內容。 如果你需要獲取未經處理的全部輸出數據, 請使用 passthru() 函式。

如果想要獲取命令的輸出內容, 請確保使用 output 參數。

範例

示例 #1 exec() 例程

<?php
// 輸出執行中的 php/httpd 程序的建立者使用者名稱
// (在可以執行 "whoami" 命令的系統上)
echo exec('whoami');
?>

註釋

警告

當傳入使用者提供的數據到本函式時,應使用 escapeshellarg()escapeshellcmd() 來防止使用者欺騙系統執行任意命令。

注意:

如何程式使用此函式啟動,爲了能保持在後臺執行,此程式必須將輸出重定向到檔案或其它輸出流。否則會導致 PHP 掛起,直至程式執行結束。

注意:

在 Windows 下,exec() 函式會先啟動 cmd.exe 來執行指定的命令。如果你希望啟動一個額外的應用而不用先啟動 cmd.exe 可使用 proc_open() 函式加上 bypass_shell 參數。

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *