在 PHP 中,使用 popen() 函數可以打開一個進程文件指針,從而與進程進行交互
檢查 popen() 函數的返回值:popen() 函數返回一個進程文件指針,如果打開失敗,則返回 false。你可以使用 if (!popen(...)) { ... } 語句檢查是否成功打開進程。
檢查進程的輸出:使用 fread() 函數從進程文件指針中讀取輸出。你可以使用循環來讀取所有輸出,例如:
$process = popen("your_command", "r");
if (!$process) {
echo "Error opening process\n";
exit;
}
while (!feof($process)) {
echo fread($process, 4096);
}
pclose($process);
your_command 2>&1 將錯誤輸出重定向到標準輸出,然后使用 popen() 打開這個重定向后的輸出:$command = "your_command 2>&1";
$process = popen($command, "r");
if (!$process) {
echo "Error opening process\n";
exit;
}
while (!feof($process)) {
echo fread($process, 4096);
}
pclose($process);
pclose() 函數的返回值:pclose() 函數返回進程的退出狀態碼。你可以使用 if (pclose($process) === -1) { ... } 語句檢查是否發生錯誤。-1 表示錯誤,其他值表示正常的退出狀態碼。通過以上方法,你可以處理 popen() 函數可能出現的錯誤。請注意,popen() 函數并不是 PHP 中最強大的進程管理工具,你可能需要考慮使用其他庫(如 proc_open())或者 PHP 的 shell_exec() 函數來替代。