PHP错误提示解决方案
2016-03-23 13:14
567 查看
PHP在安装后,会在php.ini 文件中设置报错、提醒、警告等方式的出现,这样的方式可以使我们在调试PHP程序的时候能及时了解程序所存在的问题。然后,有时候我们并不需要提醒、警告等内容,比如当我们使用PHP5.5(或更高)时,搭配MySql 开发环境时,使用了较老的 MySql连接方式,此时PHP 就会提示:请使用最新的 MySql 连接方式,当你在使用其读取数据库内容作为 json 格式(或其他)返回前台时,往往内容就会发生错误
如何屏蔽这个错误呢,方法有下:
1,在可能(或已经)发生提醒,或错误,或警告的页面添加屏蔽错误提醒:
error_reporting(E_ALL ^ E_DEPRECATED);
//在本版本php5.5,已经不建议采用老式的mysql连接方法
//但speedPHP还是沿用着老式的连接方法,这时php会报E_deprecated提示,此时关掉该提示就Ok了,也可以将
//php置于部署模式(非开发模式),但最好的解决方法是采用最新的speedPHP
一般还可以使用下面的内容来解决一些 notice waring 等问题
ini_set("display_errors", 0);
error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_WARNING);
2,打开php.ini文件,找到相关设置(如下图),将 on 改成 off,就可以屏蔽出错(不推荐此方法):
![](http://www.th7.cn/d/file/p/2014/08/12/d2a7f2303d5ae5db05a8cbf2d8093d7d.jpg)
有时候修改了 php.ini 的dispaly_errors 还是不行,那就参照下面的方法:
修改php.ini,将display_errors = On 改为 display_errors = Off,结果还是不行。百度了下,原来还要在php-fpm.conf里设置。
打开php-fpm.conf,找到:
<value name="php_defines">
</value><value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">0</value>
将其中的值从1改为0就可以了。
3,这种方法非常适用那些项目中已经决定要采用某种一定会引起 提醒 或 警告的方式,一招屏蔽,一劳永逸:
首先参照2,找到相关的 dispaly_errors 的位置,将 Off 改成 On
紧接着找到下图这个位置,修改你需要报错的级别,或不需要报错的级别
![](http://www.th7.cn/d/file/p/2014/08/12/5b5a88d52e95e8005320e685c6a3105c.jpg)
参照的报错级别如下:
如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案。
如何屏蔽这个错误呢,方法有下:
1,在可能(或已经)发生提醒,或错误,或警告的页面添加屏蔽错误提醒:
error_reporting(E_ALL ^ E_DEPRECATED);
//在本版本php5.5,已经不建议采用老式的mysql连接方法
//但speedPHP还是沿用着老式的连接方法,这时php会报E_deprecated提示,此时关掉该提示就Ok了,也可以将
//php置于部署模式(非开发模式),但最好的解决方法是采用最新的speedPHP
一般还可以使用下面的内容来解决一些 notice waring 等问题
ini_set("display_errors", 0);
error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_WARNING);
2,打开php.ini文件,找到相关设置(如下图),将 on 改成 off,就可以屏蔽出错(不推荐此方法):
![](http://www.th7.cn/d/file/p/2014/08/12/d2a7f2303d5ae5db05a8cbf2d8093d7d.jpg)
有时候修改了 php.ini 的dispaly_errors 还是不行,那就参照下面的方法:
修改php.ini,将display_errors = On 改为 display_errors = Off,结果还是不行。百度了下,原来还要在php-fpm.conf里设置。
打开php-fpm.conf,找到:
<value name="php_defines">
</value><value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">0</value>
将其中的值从1改为0就可以了。
3,这种方法非常适用那些项目中已经决定要采用某种一定会引起 提醒 或 警告的方式,一招屏蔽,一劳永逸:
首先参照2,找到相关的 dispaly_errors 的位置,将 Off 改成 On
紧接着找到下图这个位置,修改你需要报错的级别,或不需要报错的级别
![](http://www.th7.cn/d/file/p/2014/08/12/5b5a88d52e95e8005320e685c6a3105c.jpg)
参照的报错级别如下:
如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- 如何解决双网卡冲突
- 激光彩色打印机维修常识常见问题及解决
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- 总提示[Microsoft][ODBC Excel Driver] 数值字段溢出官方解决方法
- ASP.NET、ASP、PHP、JSP之间有什么区别?