您可以使用ob_start()函數開啟輸出緩沖區,在發生錯誤時使用ob_get_contents()函數獲取錯誤信息。以下是一個簡單的示例代碼:
// 開啟輸出緩沖區
ob_start();
// 執行可能會觸發錯誤的代碼
echo $undefinedVariable;
// 獲取錯誤信息
$errorMsg = ob_get_contents();
// 關閉輸出緩沖區
ob_end_clean();
// 輸出錯誤信息
if (!empty($errorMsg)) {
echo "Error message: " . $errorMsg;
} else {
echo "No error occurred.";
}
在這個例子中,$undefinedVariable是一個未定義的變量,會觸發一個未定義變量的錯誤。ob_start()會開啟輸出緩沖區,將所有輸出內容暫時存儲起來。當錯誤發生時,使用ob_get_contents()獲取輸出緩沖區的內容,即錯誤信息。最后通過ob_end_clean()關閉輸出緩沖區,確保后續的輸出不受影響。
請注意,這種方法僅適用于捕獲通過echo、print等輸出函數輸出的錯誤信息,對于fatal error或者其他類型的錯誤信息可能無法捕獲。