PHP从入门到精通(六)

PHP中的错误处理

1、PHP的错误级别:见表格。
2、调整PHP错误报告级别:
PHP中,调整错误报告级别的方式有两种:
①修改PHP.ini文件的配置项。
a、会导致在当前服务器环境下所有PHP文件都受其影响。
b、如果代码更换服务器,会导致配置文件全部失效,需要重新配置。
所以实际开发过程中,并不推荐使用此方式!!
②在代码中使用ini_set()函数,动态的修改php.ini文件的配置项;(get为获取配置项)

>>>php.ini中的两个重要配置项:
①display_errors:开启或关闭所有错误级别报告;
可选值:1/On表示开启所有错误报告功能; 0/Off表示关闭所有报告;
默认开启,而且强烈建议开启!!

代码实例:

ini_set("display_errors","0");---->关闭错误报告功能;

 

②error_reporting:设置那些错误可以进行报告;
有两个函数可以设置:ini_set()和error_reporting;

代码示例:

ini_set("error_reporting",E_ALL);报告所有级别;
error_reporting("E_ALL & ~E_NOTICE");不报告notice级别,其他均正常报告;

 

3、使用错误日志,记录出现的错误;
①使用日志文件记录:
使用error_log()函数将错误信息输出到日志文件中。默认的日志文件在wamp中的log文件夹下,php_error.log文件;
>>>自定义日志文件打印错误:

代码示例:

ini_set("error_log","E:/text.txt");//设置日志文件地址;
error_log("出错了!!!");//打印一句错误信息;

error_log("这是一个PHP错误",3,"E:/textLog.text");//直接将错误信息打印到指定文件中;

 

②写进Windows系统日志中:

代码示例:

ini_set("error_log", "syslog");//设置日志记录到系统日志;
error_log("系统日志出错");//使用日志报错时,将自动进入系统日志;

 

4、trigger_error:自定义一个错误;会像系统错误一样。产生报错。
参数①:错误的信息内容;
参数②:错误的级别。常选E_USER_NOTICE E_USER_WARRING E_USER_ERRORS;

5、自定义错误处理函数:
①声明一个错误处理函数function func(){}
②使用set_error_handler("func");设置,当文件出现错误时,不再使用系统自带的错误提示功能,而是调用我们自定义的函数。
>>>set_error_handler在除法函数时,会默认想函数发送四个参数:分别是:错误的级别、信息、文件、所在行号;
所以可以在声明函数时,接受错误信息,具体处理。

实例展示:

复制代码
ini_set("display_errors", 1);
    $errMessage="";
    function errorHandler($type,$message,$file,$line){
        global $errMessage;
        switch ($type) {
            case E_NOTICE:
                $errMessage .= "发生了没有什么卵用的小bug,就不用处理了<br><br>";
                break;
            case E_WARNING:
                $errMessage .= "出错啦!!!";
                $errMessage .= "错误类型是:{$type}";
                $errMessage .= "错误信息是:{$message}";
                $errMessage .= "错误发生的文件是:{$file}";
                $errMessage .= "错误发生的行号是:{$line}";
                $errMessage .= "<br><br>";
                break;
            case E_ERROR:
                echo "<script>"; 
                echo "location.href='../01text.php'"; 
                echo "</script>"; 
                break;
            default:
                echo "<script>"; 
                echo "location.href='../01text.php'"; 
                echo "</script>"; 
                break;
        }
        
    }
    set_error_handler("errorHandler");

    //ini_set("error_reporting",E_ALL);
    //error_reporting(E_ALL & ~E_NOTICE);
    ini_set("error_log", "syslog");
    error_log("这是一个PHP错误",3,"E:/textLog.text");
echo $num;
//trigger_error("22222222",E_USER_NOTICE);//自定义一个错误,上述函数未接受,因此会进入default;
echo "11111";
echo "</br>-------------------------------------------------</br>";
echo $errMessage;
复制代码

转载于:https://www.cnblogs.com/cangqinglang/p/8821631.html

PHP从入门到精通》从初学者角度出发,通过通俗易懂的语言,丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。 全书共分27章,包括初识.PHPPHP环境搭建和开发工具、PHP语言基础、流程控制语句、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、PHP与JavaScript交互、日期和时间、Cookie与Session、图形图像处理技术、文件系统、面向对象、PHP加密技术、MySQL数据库基础、phpMyAdmin图形化管理工具、PHP操作MySQL数据库、ADODB类库、程序调试及错误处理、PHP网络开发、PHP与XMIL技术、:PHP与LDAP技术、PHP与Ajax技术、WebService与SOAP技术、Smarty模板技术、使用Smarty模板开发电子商务网站等。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会PHP程序开发的精髓,快速提高开发技能。《PHP从入门到精通》所配DVD光盘含有全程语音视频讲解教学录像以及实例的全部源代码,这些源代码都经过精心调试,在WindowsXP、Windows2000、Windows2003下全部通过。谢谢,www.liwuguo.com 支持整理。《PHP从入门到精通》内容详尽,实例丰富,非常适合作为编程初学者的学习用书,也适合作为开发人员的查阅、参考资料。 ------------------另附带 PHP入门教程 CHM 中文手册,使用很方便~ 让php初学者,找到学习的好方法,就1分,来吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值