PHP捕捉页面500错误并提示具体错误代码

 PHP   高蒙   阅读(2585)   评论(0)   2015-12-24 15:10:34    PHP如何自动捕捉页面500错误 捕捉页面500错误 


我们经常在写代码的时候,程序一般在发出致命警告的时候页面会是一片空白。这个时候,我们就想获得准确的报错信息,以便我们去解决问题。

下面给大家介绍两种情况下,一种情况是我们的程序已经上线,在服务器获取报错信息的方法;一种情况是我们的程序还在本地调试阶段,获取报错的方法。

第一种:服务器端获取报错方法。

如果想获取错误信息也不难!主要是利用两个函数:
 
error_get_last() :获取最后一次发生错误信息:
 
我们可以把错误输出下面的数据结构:
Array
(
    [type] => 8
    [message] => Undefined variable: http://www.shuchengxian.com
    [file] => C:WWWindex.php
    [line] => 2
)
 
register_shutdown_function():在脚本停止执行时注册一个回调函数
 
有了这两个函数就可以监控致命错误了:
 
error_reporting(E_ALL); 

function cache_shutdown_error() {
    $_error = error_get_last();
    if ($_error && in_array($_error['type'], array(1, 4, 16, 64, 256, 4096, E_ALL))) {
        echo '<font color=red>你的代码出错了:</font></br>';
        echo '致命错误:' . $_error['message'] . '</br>';
        echo '文件:' . $_error['file'] . '</br>';
        echo '在第' . $_error['line'] . '行</br>';
    }
}

register_shutdown_function("cache_shutdown_error");

第二种:本地服务器获取报错的方法。 

下面来说说显示PHP错误提示消息的三个方法。
 
一:php.ini配置
 
php.ini配置中与此相关的有两个配置变量。下面是这两个变量及其默认值:
 
display_errors = Off
error_reporting = E_ALL & ~E_NOTICE
 
display_errors 变量的目的很明显 —— 它告诉PHP是否显示错误。默认值是 Off。
 
现在我们的目的是显示错误提示,那么:display_errors = On
 
E_ALL,这个设置会显示从不良编码实践到无害提示到出错的所有信息。
E_ALL 对于开发过程来说有点太细,因为它连变量未初始化也显示提示,而这一点正是PHP“高级”的一个特征。
幸好,error_reporting的默认值是“E_ALL & ~E_NOTICE”,这样就只看到错误和不良编码了,对程序无不利的提示则不会显示。 
修改php.ini后需要重新启动Apache,这样才可以在apache中生效,当然你如果只在命令行下测试程序,是不需要这一步的。
 
配置php程序:
 
<?php
error_reporting(0); //禁用错误报告
error_reporting(E_ERROR | E_WARNING | E_PARSE); //报告运行时错误
error_reporting(E_ALL); //报告所有错误
?>



相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客