在PHP中,exec()
函數可以用于執行外部命令
2>&1
將錯誤輸出重定向到標準輸出:$command = "your_command_here 2>&1";
exec($command, $output, $return_var);
if ($return_var !== 0) {
echo "Error: " . implode("\n", $output);
} else {
echo "Success: " . implode("\n", $output);
}
在這個例子中,$command
是你要執行的外部命令。2>&1
表示將錯誤輸出(文件描述符2)重定向到標準輸出(文件描述符1)。exec()
函數執行命令并將輸出存儲在 $output
數組中。$return_var
變量包含命令的返回值。如果返回值不是0,表示命令執行失敗,我們可以通過 implode("\n", $output)
將錯誤信息拼接成字符串并輸出。
set_error_handler()
自定義錯誤處理函數:function custom_error_handler($errno, $errstr, $errfile, $errline) {
echo "Error: [$errno] $errstr on line $errline in $errfile";
}
set_error_handler("custom_error_handler");
$command = "your_command_here";
exec($command, $output, $return_var);
restore_error_handler();
if ($return_var !== 0) {
echo "Error: " . implode("\n", $output);
} else {
echo "Success: " . implode("\n", $output);
}
在這個例子中,我們首先定義了一個自定義錯誤處理函數 custom_error_handler()
,然后使用 set_error_handler()
將其設置為當前的錯誤處理函數。在執行命令后,我們使用 restore_error_handler()
恢復默認的錯誤處理函數。其他部分與第一個例子相同。