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