微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP自定义错误处理的方法分析

本文实例讲述了PHP自定义错误处理的方法分享给大家供大家参考,具体如下:

自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按照自己定义的格式打印错误报告,或改变错误报告打印的位置(标准PHP错误报告是哪里发生错误就在发生位置处显示)。以下几种情况可以考虑自定义错误处理。

★可以记下错误的信息,及时发现一些生产环境出现的问题。

★可以用来屏蔽错误。出现错误会把一些信息暴漏给用户,极有可能成为黑客攻击你网站的工具。

★可以做相应的处理,将所有错误报告放到脚本最后输出,或出错时可以显示跳转到预先定义好的出错页面,提供更好的用户体验,如果必要,还可以在自定义错误处理程序中,根据情况去终止脚本运行。

★可以作为调试工具,一些时候必须在运行环境时调试一些东西,但又不想影响正在使用的用户

通常使用set_error_handler()函数去设置用户自定义错误处理函数,该函数用于创建运行时期间的用户自己的错误处理方法,返回旧的错误处理程序,若失败,则返回null。该函数有两个参数,其中第一个参数是必选的,需要一个回调函数,规定发生错误时运行的函数。这个回调函数一定要声明4个参数,否则无效,按顺序分别为“是否存在错误”、“错误信息”、“错误文件”和“错误行号”。set_error_handler()函数的第二个参数则为可选的,规定现在哪个错误报告级别会显示用户自定义错误认是“E_ALL”。自定义错误处理的示例如下所示:

PHP

error_reporting(0); //屏蔽程序中的错误

//定义Error_Handler函数,作为set_error_handler()函数的第一个参数“回调”

function error_handler($error_level,$error_message,$file,$line){

$EXIT =FALSE;

switch($error_level){

//提醒级别

case E_NOTICE:

case E_USER_NOTICE:

$error_type = 'Notice';

break;

//警告级别

case E_WARNING:

case E_USER_WARNING:

$error_type='warning';

break;

//错误级别

case E_ERROR:

case E_USER_ERROR:

$error_type='Fatal error';

$EXIT = TRUE;

break;

//其他未知错误

default:

$error_type='UnkNown';

$EXIT = TRUE;

break;

}

//直接打印错误信息,也可以写文件,写数据库,反正错误信息都在这,任你发落

printf("%s:%s in%s on line %d
n",$error_type,$line);

//如果错误影响到程序的正常执行,跳转到友好的错误提示页面

if (TURE==$EXIT){

echo '

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐