敦兮其若朴,旷兮其若谷
<?php
/**
* 输出捕获到的错误信息(包含致命错误)
* 用到的函数有:
* 1、register_shutdown_function()----脚本执行完成或意外死掉导致PHP执行即将关闭时,这个函数将会被调用
* 2、set_error_handler()----脚本执行完成或意外死掉导致PHP执行即将关闭时,这个函数将会被调用
* 3、error_get_last()----函数返回最后发生的错误(以关联数组的形式)
*/
register_shutdown_function( "fatal_handler" );
set_error_handler("error_handler");
define('E_FATAL', E_ERROR | E_USER_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR| E_PARSE );//获取fatal error
function fatal_handler() {
$error = error_get_last();
if($error && ($error["type"]===($error["type"] & E_FATAL))) {
$errno = $error["type"];
$errfile = $error["file"];
$errline = $error["line"];
$errstr = $error["message"];
error_handler($errno,$errstr,$errfile,$errline);
}
}
//获取所有的error
function error_handler($errno,$errstr,$errfile,$errline){
$str=<<<EOF
"errno":$errno<br>
"errstr":$errstr<br>
"errfile":$errfile<br>
"errline":$errline<br>
<br>
EOF;
//获取到错误可以自己处理,比如记Log、报警等等
echo $str;
}
// testst();//测试不存在的函数testst(),输出获取的错误信息
© 后花院 | 静心思考 | Powered by EMLOG | Theme by NIMA
友情链接:Nutcracker