我希望将警告和错误信息保存到php变量中,以便将它们保存到我的数据库。
比如,当出现任何类型的错误、警告或类似情况时:
Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]
我希望将它们取到变量$error_code中。
这该如何实现?
我希望将警告和错误信息保存到php变量中,以便将它们保存到我的数据库。
比如,当出现任何类型的错误、警告或类似情况时:
Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]
对于仅需记录它们的简单情况:
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");
来源: ErrorException
异常错误将会有更严重的副作用,因此您应该设置一个异常处理程序,以防止未捕获的异常导致页面白屏。
设置一个用户函数(error_handler)来处理脚本中的错误。
此函数可用于在运行时定义自己的错误处理方式,例如在需要在发生关键错误时清理数据/文件或在需要在特定条件下触发错误时(使用trigger_error())的应用程序中。
我正在使用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
error_log
文件中读取并将其写入数据库。 - Achrome