(PHP 4, PHP 5)
exec — 執(zhí)行一個外部程序
說明
string exec ( string$command
[, array &$output
[, int &$return_var
]] )
exec() 執(zhí)行
command
參數(shù)所指定的命令。
參數(shù)
command
要執(zhí)行的命令。
output
如果提供了 output
參數(shù),
那么會用命令執(zhí)行的輸出填充此數(shù)組,
每行輸出填充數(shù)組中的一個元素。
數(shù)組中的數(shù)據(jù)不包含行尾的空白字符,例如 n 字符。
請注意,如果數(shù)組中已經(jīng)包含了部分元素,exec()
函數(shù)會在數(shù)組末尾追加內(nèi)容。如果你不想在數(shù)組末尾進(jìn)行追加,
請?jiān)趥魅?exec() 函數(shù)之前
對數(shù)組使用 unset() 函數(shù)進(jìn)行重置。
return_var
如果同時提供
output
和
return_var
參數(shù),
命令執(zhí)行后的返回狀態(tài)會被寫入到此變量。
返回值
命令執(zhí)行結(jié)果的最后一行內(nèi)容。 如果你需要獲取未經(jīng)處理的全部輸出數(shù)據(jù), 請使用 passthru() 函數(shù)。
如果想要獲取命令的輸出內(nèi)容,
請確保使用 output
參數(shù)。
范例
Example #1 exec() 例程
<?php
// 輸出運(yùn)行中的 php/httpd 進(jìn)程的創(chuàng)建者用戶名
// (在可以執(zhí)行 "whoami" 命令的系統(tǒng)上)
echo exec('whoami');
?>
注釋
Warning當(dāng)用戶提供的數(shù)據(jù)傳入此函數(shù),使用 escapeshellarg() 或 escapeshellcmd() 來確保用戶欺騙系統(tǒng)從而執(zhí)行任意命令。
Note:
如何程序使用此函數(shù)啟動,為了能保持在后臺運(yùn)行,此程序必須將輸出重定向到文件或其它輸出流。否則會導(dǎo)致 PHP 掛起,直至程序執(zhí)行結(jié)束。
Note: 安全模式 啟用時,可僅可用 safe_mode_exec_dir 執(zhí)行文件。實(shí)際上,現(xiàn)在不允許在到可執(zhí)行的路徑中存在 .. 組件。
Warning安全模式 啟用時,命令字符串會被 escapeshellcmd() 轉(zhuǎn)換。因此,echo y | echo x 會變成 echo y | echo x。
參見
system() - 執(zhí)行外部程序,并且顯示輸出 passthru() - 執(zhí)行外部程序并且顯示原始輸出 escapeshellcmd() - shell 元字符轉(zhuǎn)義 pcntl_exec() - 在當(dāng)前進(jìn)程空間執(zhí)行指定程序 執(zhí)行運(yùn)算符