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