(PHP 4, PHP 5, PHP 7, PHP 8)
exec — 執行一個(gè)外部程序
$command
, array &$output
= ?, int &$return_var
= ?): string
exec() 執行
command
參數所指定的命令。
command
要執行的命令。
output
如果提供了 output
參數,
那么會(huì )用命令執行的輸出填充此數組,
每行輸出填充數組中的一個(gè)元素。
數組中的數據不包含行尾的空白字符,例如 \n
字符。
請注意,如果數組中已經(jīng)包含了部分元素,exec()
函數會(huì )在數組末尾追加內容。如果你不想在數組末尾進(jìn)行追加,
請在傳入 exec() 函數之前
對數組使用 unset() 函數進(jìn)行重置。
return_var
如果同時(shí)提供
output
和
return_var
參數,
命令執行后的返回狀態(tài)會(huì )被寫(xiě)入到此變量。
示例 #1 exec() 例程
<?php
// 輸出運行中的 php/httpd 進(jìn)程的創(chuàng )建者用戶(hù)名
// (在可以執行 "whoami" 命令的系統上)
echo exec('whoami');
?>
當傳入用戶(hù)提供的數據到本函數時(shí),應使用 escapeshellarg() 或 escapeshellcmd() 來(lái)防止用戶(hù)欺騙系統執行任意命令。
注意:
如何程序使用此函數啟動(dòng),為了能保持在后臺運行,此程序必須將輸出重定向到文件或其它輸出流。否則會(huì )導致 PHP 掛起,直至程序執行結束。
注意:
在 Windows 下,exec() 函數會(huì )先啟動(dòng) cmd.exe 來(lái)執行指定的命令。如果你希望啟動(dòng)一個(gè)額外的應用而不用先啟動(dòng) cmd.exe 可使用 proc_open() 函數加上
bypass_shell
參數。