zoukankan      html  css  js  c++  java
  • 解决PHP显示Warning和Notice等问题

    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,就可以屏蔽出错(不推荐此方法):

     

    有时候修改了 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

    紧接着找到下图这个位置,修改你需要报错的级别,或不需要报错的级别

    参照的报错级别如下:

    定义和用法:
    error_reporting() 设置 PHP 的报错级别并返回当前级别。
     
    函数语法:
    error_reporting(report_level)
     
    如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:
    值 常量 描述
    1 E_ERROR 致命的运行错误。错误无法恢复,暂停执行脚本。
    2 E_WARNING 运行时警告(非致命性错误)。非致命的运行错误,脚本执行不会停止。
    4 E_PARSE 编译时解析错误。解析错误只由分析器产生。
    8 E_NOTICE 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)
    16 E_CORE_ERROR PHP启动时初始化过程中的致命错误。
    32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)。
    64 E_COMPILE_ERROR 编译时致命性错。这就像由Zend脚本引擎生成了一个E_ERROR。
    128 E_COMPILE_WARNING 编译时警告(非致命性错)。这就像由Zend脚本引擎生成了一个E_WARNING警告。
    256 E_USER_ERROR 用户自定义的错误消息。这就像由使用PHP函数trigger_error(程序员设置E_ERROR)
    512 E_USER_WARNING 用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
    1024 E_USER_NOTICE 用户自定义的提醒消息。这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集)
    2048 E_STRICT 编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
    4096 E_RECOVERABLE_ERROR 开捕致命错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())
    8191 E_ALL 所有的错误和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)

    例子:
    任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。
    例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

    <?php
    //禁用错误报告
    error_reporting(0);
     
    //报告运行时错误
    error_reporting(E_ERROR | E_WARNING | E_PARSE);
     
    //报告所有错误
    error_reporting(E_ALL);
    ?>

     ​

  • 相关阅读:
    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
    11
    实战 迁移学习 VGG19、ResNet50、InceptionV3 实践 猫狗大战 问题
    tx2系统备份与恢复
    如何在Ubuntu 18.04上安装和卸载TeamViewer
    bzoj 3732 Network (kruskal重构树)
    bzoj2152 聪聪可可 (树形dp)
    牛客 216D 消消乐 (二分图最小点覆盖)
    牛客 197E 01串
    Wannafly挑战赛23
  • 原文地址:https://www.cnblogs.com/sandea/p/5004527.html
Copyright © 2011-2022 走看看