我正在修复一个网站的php错误下来注意。我这样做的方法是启用error_reporting并遍行站点,发现错误并修复它们。然而,我已经注意到,这种方式我错过了错误是在一个页面的看不见的部分,即隐藏的输入,不可见的div等。搜索来源感觉不太方便也不可靠。
我想创建一个错误处理程序,要么将错误发送给我,要么抛出异常。前者会造成混乱,后者只允许发现一个错误,有时仍然需要查看源代码。
这里的关键是有成千上万个这样的错误,所以即使在每个错误上节省几秒钟,也会节省大量的时间。
问题是,如果有软件会突出这些错误为我,例如FF/Chrome扩展?
好了,设置一个自定义错误处理程序并将错误传递给FirePHP似乎就能达到目的。这也显示了引用文件的错误。
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
$br = php_sapi_name() == 'cli' ? '' : '<br>';
switch ($errno) {
case E_NOTICE: $errorType = 'Notice'; break;
case E_WARNING: $errorType = 'Warning'; break;
default: $errorType = 'Error'; break;
}
$message = "$errorType: $errstr $br'n in $errfile $br'n on line $errline";
if (php_sapi_name() == 'cli') {
throw new Exception($message);
} else {
'FirePHP::getInstance(true)->error($message);
}
});