我想将警告和错误消息放入 php $variables 中,因此我将它们保存到我的数据库中。
例如,当出现任何类型的错误、警告或类似情况时:
Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]
我想让它们变量 $error_code
这是怎么做到的?
我想将警告和错误消息放入 php $variables 中,因此我将它们保存到我的数据库中。
例如,当出现任何类型的错误、警告或类似情况时:
Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]
我想让它们变量 $error_code
这是怎么做到的?
对于仅记录它们的简单情况:
set_error_handler(function($errno, $errstr, $errfile, $errline) use ($db) {
// log in database using $db->query()
});
除了将它们记录到您的数据库中(一段时间后您可能不会查看它们)之外,您还可以让这些警告、通知等生成异常:
function exception_error_handler($errno, $errstr, $errfile, $errline)
{
if (error_reporting()) { // skip errors that were muffled
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
}
set_error_handler("exception_error_handler");
异常会有更严重的副作用,所以你应该有一个异常处理程序来防止未捕获的异常导致白页死机。
设置用户函数 (error_handler) 以处理脚本中的错误。
此函数可用于定义您自己在运行时处理错误的方式,例如在发生严重错误时需要清理数据/文件的应用程序中,或者当您需要在某些条件下触发错误时(使用触发器错误())。
我一直在使用error_get_last();
,直到找到更好的解决方案
$lastError = error_get_last();
echo $lastError ? "Error: ".$lastError["message"]." on line ".$lastError["line"] : "";
// Save to db
有一个名为 $php_errormsg 的变量会获取上一条错误消息。在这里查看更多信息 - http://php.net/manual/en/reserved.variables.phperrormsg.php