php中通过register_shutdown_function记录fatal error
来源:互联网 发布:网络科学导论 ppt 编辑:程序博客网 时间:2024/06/06 04:03
今天发现php中,如果要记录fatal error的时候,可以实用一个不错的函数,
叫register_shutdown_function,小结如下:
register_shutdown_function可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会被调用.所以,我们可以使用在脚本开始处设置一个变量为false,然后在脚本末尾将之设置为true的方法,让PHP关闭回调函数检查脚本完成与否. 如果我们的变量仍旧是false,我们就知道脚本的最后一行没有执行,因此它肯定在程序执行到某处死掉了;
例子如下:
再来一个记录fatal error的例子
注意的是;
1,register_shutdown_function()函数可重复调用,但执行的顺序与注册的顺序相同
2,如果在调用register_shutdown_function()函数之前有exit()函数调用,register_shutdown_function()函数将不能执行
3,PHP4后支持注册函数参数传递
4,在某些服务端,如Apache,当前目录在register_shutdown_function()函数中能够改变
5,register_shutdown_function()函数执行在headers发送之后
叫register_shutdown_function,小结如下:
register_shutdown_function可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会被调用.所以,我们可以使用在脚本开始处设置一个变量为false,然后在脚本末尾将之设置为true的方法,让PHP关闭回调函数检查脚本完成与否. 如果我们的变量仍旧是false,我们就知道脚本的最后一行没有执行,因此它肯定在程序执行到某处死掉了;
例子如下:
?php$clean = false;function shutdown_func(){ global $clean; if (!$clean){ die("not a clean shutdown"); } return false;}register_shutdown_function("shutdown_func");$a = 1;$a = new FooClass(); // 将因为致命错误而失败$clean = true;?>
再来一个记录fatal error的例子
function catch_fatal_error(){ $last_error = error_get_last(); // 检查是否属于fatal_error if(isset($last_error['type']) &&$last_error['type']==E_ERROR) { //相关的处理 }}register_shutdown_function('catch_fatal_error');
注意的是;
1,register_shutdown_function()函数可重复调用,但执行的顺序与注册的顺序相同
2,如果在调用register_shutdown_function()函数之前有exit()函数调用,register_shutdown_function()函数将不能执行
3,PHP4后支持注册函数参数传递
4,在某些服务端,如Apache,当前目录在register_shutdown_function()函数中能够改变
5,register_shutdown_function()函数执行在headers发送之后
- php中通过register_shutdown_function记录fatal error
- php中register_shutdown_function 函数详解
- PHP register_shutdown_function
- php register_shutdown_function响应error 配合error_get_last 捕获错误
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function函数详解
- PHP之register_shutdown_function方法
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function函数使用
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function函数详解
- PHP register_shutdown_function() 函数
- PHP中超时提示Fatal error: Maximum ex...
- PHP中超时提示Fatal error: Maximum ex...
- (转)Mysql 慢日志优化分析方法
- 判断Android后台服务线程(Service类)是否正在运行
- oracle禁止使用触发器
- html 5中localstorage小结
- android中的两端对齐
- php中通过register_shutdown_function记录fatal error
- PHP 文件处理----fopen(),fclose(),feof(),fgets(),fgetc()
- HTML 5中又新增加main标签
- mysqldump中当存在trigger要注意的地方
- SVN 本地版本不一致无法提交问题
- apache commons包中的bag和双向map
- combiner学习要点
- NavigableMap与NavigableSet
- WebService xfire奇怪问题