一 PHP错误级别
二 php.ini错误设置
error_reporting = E_ALL // 报告错误级别,什么级别的
error_log = /tmp/php_errors.log // php中的错误显示的日志位置
display_errors = On // 是否把错误展示在输出上,这个输出可能是页面,也可能是stdout
display_startup_errors = On // 是否把启动过程的错误信息显示在页面上,记得上面说的有几个Core类型的错误是启动时候发生的,这个就是控制这些错误是否显示页面的。
log_errors = On // 是否要记录错误日志
log_errors_max_len = 1024 // 错误日志的最大长度
ignore_repeated_errors = Off // 是否忽略重复的错误
track_errors = Off // 是否使用全局变量$php_errormsg来记录最后一个错误
xmlrpc_errors = 0 //是否使用XML-RPC的错误信息格式记录错误
xmlrpc_error_number = 0 // 用作 XML-RPC faultCode 元素的值。
html_errors = On // 是否把输出中的函数等信息变为HTML链接
docref_root = http://manual/en/ // 如果html_errors开启了,这个链接的根路径是什么
fastcgi.logging = 0 // 是否把php错误抛出到fastcgi中
三 错误机制常用设置
1、error_reporting 设置PHP的报错级别
1)通过修改PHP配置文件中的error_reporting选项值 如,在php.ini设置如下:error_reporting = E_ALL
2)通过error_reporting()函数设置 如: error_reporting(0); // 关闭所有PHP错误报告 error_reporting(-1); // 报告所有 PHP 错误 error_reporting(E_ALL); //和error_reporting(-1)一样
3)通过ini_set() 函数运行时设置 ini_set(‘error_reporting’,E_ALL);
2、display_errors 设置是否将错误信息该选项设置是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。
1) ini_set(‘display_errors’,1);
2)在php.ini设置如下:display_errors = On说明:display_errors设置为On, 会将错误显示到浏览器上,不管是On还是Off都会记录到你错误日志里面,前提是配置了错误日志log_errors和error_log
四 自定义错误处理函数
trigger_error() 函数创建用户自定义的错误消息。
trigger_error() 函数用于在用户指定的条件下触发一个错误消息。它可以与内建的错误处理程序一起使用,或者与由 set_error_handler() 函数设置的用户自定义函数一起使用。
<?php
if ($usernum>10) {
trigger_error("Number cannot be larger than 10");
}
?>
set_error_handler() 函数设置用户自定义的错误处理函数。
该函数用于创建运行时期间的用户自己的错误处理方法。
该函数会返回旧的错误处理程序,若失败,则返回 null。
<?php
//error handler function
//errno 错误级别 errstr 错误提示 errfile 错误文件 errline 错误行数
function myError($errno, $errstr, $errfile, $errline){
echo "<b>Custom error:</b> [$errno] $errstr<br />";
echo " Error on line $errline in $errfile<br />";
echo "Ending Script";
}
//set error handler
set_error_handler("myError");
echo $a;
echo 3/0;
$test=2;
//trigger error
if ($test>1)
{
trigger_error("发生错误了");
}
?>
输出结果:
Custom error: [8] Undefined variable: a
Error on line 12 in D:\xampp\htdocs\demo.php
Ending ScriptCustom error: [2] Division by zero
Error on line 13 in D:\xampp\htdocs\demo.php
Ending ScriptCustom error: [1024] 发生错误了
Error on line 20 in D:\xampp\htdocs\demo.php
Ending Script