PHP设置错误报告

error_reporting
设定错误讯息回报的等级。
语法:   int error_reporting(int [level]);
传回值:  整数
函式种类:  PHP 系统功能
    
        
            
            
                
                    
                         
                    
                
            
            
        
        
             内容说明
        
    
本函式用来设定错误讯息回报的等级,参数 level 是一个整数的位元遮罩 (bitmask),见下表。
    
        
            value
            constant
        
    
    
        
            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() 函式检视不存在的档案。
  • E_WARNING 通常都会显示出来,但不会中断程式的执行。这对除错很有效。例如:用有问题的常规表示法呼叫 ereg()
  • E_ERROR 通常会显示出来,亦会中断程式执行。意即用这个遮罩无法追查到记忆体配置或其它的错误。
  • E_PARSE 从语法中剖析错误。
  • E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。
  • E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。 
    PHP 的错误报告
      php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(请参阅 
    参考资料
    )。在调试 PHP 应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值:
        
            
                
                 
    display_errors = Off 
    error_reporting = E_ALL 
                
            
        
      通过在 php.ini 文件中搜索它们,可以发现这两个变量当前的默认值。display_errors 变量的目的很明显 —— 它告诉 PHP 是否显示错误。默认值是 Off。但是,要让开发过程更加轻松,请把这个值设为 On:
        
            
                
                 
    display_errors = On 
                
            
        
      error_reporting 变量的默认值是 E_ALL。这个设置会显示从不良编码实践到无害提示到出错的所有信息。
    E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出。我只想看到错误和不良编码实践,
    但是不想看到无害的提示。所以,请用以下值代替 error_reporting 的默认值:
        
            
                
                 
    error_reporting = E_ALL & ~E_NOTICE 
                
            
        
      重新启动 Apache,就全部设置好了。接下来,将学习如何在 Apache 上做同样的事。
      服务器上的错误报告
     
     依赖于 Apache 正在做的工作,在 PHP 中打开错误报告可能没法工作,因为在计算机上可能有多个 PHP 版本。有时很难区
    分 Apache 正在使用哪个 PHP 版本,因为 Apache 只能查看一个 php.ini 文件。不知道 Apache 正在使用哪
    个 php.ini 文件配置自己是一个安全问题。但是,有一种方法可以在 Apache 中配置 PHP 变量,从而保证设置了正确的出错级别。
      而且,最好知道如何在服务器端设置这些配置变量,以否决或抢占 php.ini 文件,从而提供更高级别的安全性。 
    在配置 Apache 时,应该已经接触过 /conf/httpd.conf 中 http.conf 文件中的基本配置。
      要做在 php.ini 文件中已经做过的事,请把下列各行添加到 httpd.conf,覆盖任何 php.ini 文件:
        
            
                
                 
    php_flag  display_errors        on 
    php_value error_reporting       2039 
                
            
        
      这会覆盖在 php.ini 文件中为 display_errors 已经设置的标志,以及 error_reporting
    的值。值 2039 代表 E_ALL & ~E_NOTICE。如果愿意采用 E_ALL,请把值设为 2047。同样,还是要重启
    Apache。
      接下来,要在服务器上测试错误报告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值