PHP 从入门到精通
之 PHP 中的字符串
在创建脚本和 web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。
本教程介绍了 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;
本期分享就到这里,下期再见。觉得内容对你有所帮助的朋友请点推荐,欢迎大家在评论下方评论区与博主互动,谢谢大家!
未完,待续。。。
来源: http://www.cnblogs.com/liuyongqi/p/7142155.html