PHP - 在一个字符串中捕获所有error_get_last()

时间:2018-05-11 19:27:50

标签: php logging capture audit

是否可以通过使用以下方式捕获/收集页面上的所有错误并将它们连接到字符串:

$allErrors = ""; 
$allErrors .= error_get_last(); // Each time an error shows up

我喜欢在我的数据库中记录错误,并且希望记录所有这些PHP错误,因为我已经记录了与SQL相关的PHP致命错误。

1 个答案:

答案 0 :(得分:1)

error_get_last(),就像名字所暗示的那样,只会给你最后一个错误。而且大多数错误都会阻止你的脚本运行这一事实只能让你获得最后一个,而不是前一个。但是你可以set an own handler来捕获每个抛出的错误和异常。这是一个例子

//function for exception handling
function handle_exception (Exception $exception) {

    //here you can save the exception to your database

}

//function for error handling
function handle_error ($number, $message, $file, $line, $context = null) {

    //pass/throw error to handle_exception
    throw new ErrorException ($message, 0, $number, $file, $line);

}

//set error-handler but only for E_USER_ERROR and E_RECOVERABLE_ERROR
set_error_handler ('handle_error', E_USER_ERROR|E_RECOVERABLE_ERROR);

//exception-handler
set_exception_handler ('handle_exception');