(PHP 4, PHP 5, PHP 7, PHP 8)
passthru — 執(zhí)行外部程序并且顯示原始輸出
$command
, int &$result_code
= null
): ?bool
同 exec() 函數(shù)類似,
passthru() 函數(shù)
也是用來執(zhí)行外部命令(command
)的。
當所執(zhí)行的 Unix 命令輸出二進制數(shù)據(jù),
并且需要直接傳送到瀏覽器的時候,
需要用此函數(shù)來替代 exec()
或 system() 函數(shù)。
常用來執(zhí)行諸如 pbmplus 之類的可以直接輸出圖像流的命令。
通過設置 Content-type 為 image/gif
,
然后調用 pbmplus 程序輸出 gif 文件,
就可以從 PHP 腳本中直接輸出圖像到瀏覽器。
command
要執(zhí)行的命令。
result_code
如果提供 result_code
參數(shù),
Unix 命令的返回狀態(tài)會被記錄到此參數(shù)。
成功時返回 null
, 或者在失敗時返回 false
。
當傳入用戶提供的數(shù)據(jù)到本函數(shù)時,應使用 escapeshellarg() 或 escapeshellcmd() 來防止用戶欺騙系統(tǒng)執(zhí)行任意命令。
注意:
如何程序使用此函數(shù)啟動,為了能保持在后臺運行,此程序必須將輸出重定向到文件或其它輸出流。否則會導致 PHP 掛起,直至程序執(zhí)行結束。