如何获取页面中发生的PHP错误列表?

时间:2013-10-30 18:39:04

标签: php zend-framework

当我访问我的一个php页面时,我收到了一堆错误。有些是警告,其中一个是致命的错误。

我试图找出我的网页是否有任何致命错误。有没有办法获得该页面上发生的错误列表,所以我可以确定是否存在致命错误?

函数error_get_last()不能解决我的目的,因为它只列出最后发生的错误,这可能不一定是致命的错误。

谢谢,

1 个答案:

答案 0 :(得分:2)

我不知道这可能是什么用例,但回答你的问题 - 你可以设置自己的错误处理程序,并捕获所有错误:

$errors = array();

set_error_handler(function($code, $msg, $file, $line, $context) use(&$errors){
  $errors[] = compact('code', 'msg', 'file', 'line', 'context');
});

并在脚本末尾检查该数组。

要“捕获”致命错误,请在关机期间检查error_get_last()

register_shutdown_function(function(){
  $error = error_get_last();

  if($error && in_array($error['type'], array(E_ERROR, E_PARSE, E_COMPILE_ERROR)){
    // some kind of fatal error        
  }
});