PHP 错误与异常 笔记与总结(3)PHP 配置文件(php.ini)中与错误相关的选项 与 设置错误级别
2015-05-17 22:11
1026 查看
【PHP 配置文件中与错误相关的选项 】
① error_reporting
例如:
代表错误级别是所有错误。还可以设置为该语句上文中提到的所有错误级别,。
注:php 5.4以上版本中,E_STRICT 就属于 E_ALL 中的一部分。
这些错误级别可以单独使用,也可以配合位运算符结合使用。
【例】显示所有错误,但是不显示 notice,php.ini 中的 error_reporting 应该设置为:
② display_error
开发环境需要打开(display_errors = On),生产环境(线上)需要关闭(diaplay_errors = Off)。
【设置错误级别】
① 通过 PHP 配置文件设置(以上都是这种方式)
② 通过 error_reporting() 函数设置(动态设置)
【例1】得到当前错误级别的位掩码
输出:
30719
(对应的 error_reporting = E_ALL)
【例2】设置错误级别—— 显示所有错误
【例3】不显示通知级别的错误
输出:
什么都不输出。
【例4】屏蔽所有错误 —— 部署到线上时,可以通过这种方法设置错误级别,防止信息泄漏给用户
输出:
什么都不输出 —— 即使是致命级别的错误(Fatal 级别)也不现实,但解析错误(语法检测阶段)仍然会显示,如例5
【例5】
输出:
【例6】显示所有错误
输出:
③ 通过 ini_set() 函数运行时设置
【例1】不显示所有错误
输出:
什么都不输出。
或者
也能达到不显示所有错误的效果。
【例2】显示所有错误
输出:
【常用设置】
在php.ini 中可以对 error_reporting 进行如下设置,以屏蔽我们认为不是错误的提示:
或者在发送 header 之前,把所有的内容输出到内存缓冲中(output buffering)。
【附】① 位运算符
② php 5.4 以上版本官方推荐使用 mysqli 代替 mysql
选项 | 描述 |
error_reporting | 设置错误报告的级别 |
display_errors | 是否显示错误 |
log_errors | 设置是否将错误信息记录到日志或者 error_log 中 |
error_log | 设置脚本错误将记录到的文件 |
log_errors_max_len | 设置 log_errors 的最大字节数 |
ignore_repeated_errors | 是否忽略重复的错误信息 |
ignore_repeated_source | 是否忽略重复错误消息的来源 |
track_errors | 如果开启此选项,最后一个错误将永久保存在$php_errormsg 中 |
例如:
error_reporting = E_ALL
代表错误级别是所有错误。还可以设置为该语句上文中提到的所有错误级别,。
注:php 5.4以上版本中,E_STRICT 就属于 E_ALL 中的一部分。
这些错误级别可以单独使用,也可以配合位运算符结合使用。
【例】显示所有错误,但是不显示 notice,php.ini 中的 error_reporting 应该设置为:
error_reporting = E_ALL& ~E_NOTICE
② display_error
开发环境需要打开(display_errors = On),生产环境(线上)需要关闭(diaplay_errors = Off)。
【设置错误级别】
① 通过 PHP 配置文件设置(以上都是这种方式)
② 通过 error_reporting() 函数设置(动态设置)
【例1】得到当前错误级别的位掩码
<?php echo error_reporting();
输出:
30719
(对应的 error_reporting = E_ALL)
【例2】设置错误级别—— 显示所有错误
<?php error_reporting(E_ALL);
【例3】不显示通知级别的错误
<?php error_reporting(E_ALL & ~E_NOTICE); echo $dee;
输出:
什么都不输出。
【例4】屏蔽所有错误 —— 部署到线上时,可以通过这种方法设置错误级别,防止信息泄漏给用户
<?php error_reporting(0); echo dee(); //致命级别的错误
输出:
什么都不输出 —— 即使是致命级别的错误(Fatal 级别)也不现实,但解析错误(语法检测阶段)仍然会显示,如例5
【例5】
<?php error_reporting(0); echo dee()
输出:
( ! ) Parse error: syntax error, unexpected $end, expecting ',' or ';' in D:\practise\php\Error\error1.php on line 3
【例6】显示所有错误
<?php error_reporting(-1); echo dee();
输出:
( ! ) Fatal error: Call to undefined function dee() in D:\practise\php\Error\error1.php on line 3
③ 通过 ini_set() 函数运行时设置
【例1】不显示所有错误
<?php ini_set('error_reporting', 0); echo dee();
输出:
什么都不输出。
或者
<?php ini_set('display_errors', 0); echo dee();
也能达到不显示所有错误的效果。
【例2】显示所有错误
<?php ini_set('error_reporting', -1); echo dee();
输出:
( ! ) Fatal error: Call to undefined function dee() in D:\practise\php\Error\error1.php on line 3
【常用设置】
在php.ini 中可以对 error_reporting 进行如下设置,以屏蔽我们认为不是错误的提示:
error_reporting = E_ALL& ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
或者在发送 header 之前,把所有的内容输出到内存缓冲中(output buffering)。
【附】① 位运算符
② php 5.4 以上版本官方推荐使用 mysqli 代替 mysql
相关文章推荐
- PHP 错误与异常 笔记与总结(5)配置文件中与错误日志相关的选项 && 将错误记录到指定的文件中
- Empire帝国cms安装错误:使用记事本打开PHP配置文件php.ini: 设置short_open_tag = On
- PHP配置文件php.ini中打开错误报告的设置方法
- PHP配置文件php.ini中打开错误报告的设置方法
- PHP配置文件php.ini中打开错误报告的设置方法
- 配置php.ini文件,关闭错误提示,打开错误日志,设置错误日志路径
- Apache+PHP环境上传大文件的相关配置选项(转)
- php 配置文件php.ini文件的动态设置与获取
- 有关php.ini配置文件的安全设置
- 读取、设置 php.ini配置文件(复制)
- 关于PHP.INI中的错误ERROR报告级别设置
- 设置php在apache下加载ini配置文件路径,~和curl扩展无法加载的问题
- php.ini中文件上传功能配置选项说明
- PHP笔记1:php.ini文件配置
- Tomcat学习笔记 - 错误日志 - NetBeans配置tomcat出错情况总结 -- 尚未授予访问 Tomcat 服务器的权限。请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用户名和口令。 有关详细信息, 请查看服务器日志。
- PHP配置文件 php.ini 选项说明
- php的默认配置文件在 /usr/local/apache2/conf/php.ini,通过为了使你的web更安全,我们需要对php.ini进行一些设置!
- 读取和设置php.ini中的配置选项
- PHP配置文件php.ini的常见安全设置
- php脚本中操作ini配置文件选项ini_get ini_set