您可以使用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或者其他类型的错误信息可能无法捕获。