php毛病级别设置
在php.ini中能够设置服务器对毛病的报警级别。在默许情况下,php将报告除了关照以外的一切毛病。毛病报告级别是经由历程一些预定义的常量来设置的,
语法:
int error_reporting ( [int level] )
假如参数 level 未指定,当前报错级别将被返回。下面几项是 level 能够的值:
在php.ini文件中,默许的报告是除了关照以外的一切毛病,以下语句设定:
error_reporting = E_ALL & ~ (E_NOTICE)
在上面的表达式中,标记"&"示意几个前提这间的并列,而"~"示意否认,即NOT的寄义。假如想疏忽正告信息,能够设定以下语句:
error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)
在php.ini文件中,和毛病有关的设置有以下几个:
(1)error_reporting,设定毛病级别
(2)display_errors,是不是显现毛病报告,设置为ON则翻开,设置为OFF则封闭一切毛病提醒
(3)log_errors,默许设置为OFF,是不是纪录毛病日记;
(4)track_errors,默许设置为OFF,该选项能够协助处理代码中的毛病,而不是让PHP供应其默许的功用。
PHP的毛病报告
php.ini 文件中有很多设置设置。您应当已设置好本身的php.ini文件并把它放在适宜的目次中,就像在Linux上装置PHP和Apache2的文档申明中所示的那样。在调试 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 时,应当已打仗过 <apache2-install-dir>/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。
接下来,要在服务器上测试毛病报告。
关于error_reporting()这个函数,它是能够屏障到一些毛病信息,然则PHP 中心形成的毛病,是没法屏障的,由于PHP 中心形成的毛病会直接致使PHP文件编译失利,由于誊写花样没有根据PHP的编码划定规矩写而形成的毛病,是没法屏障的。
罕见的以下:
// Turn off all error reporting;封闭一切的毛病 error_reporting(0); // Report simple running errors;报告一个简朴的运转毛病 error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings …);包含报告一些未初始化的变量或捕获变量名的拼写毛病 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini;报告一切的毛病但不包含E_NOTICE error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors (bitwise 63 may be used in PHP 3);报告一切的毛病 error_reporting(E_ALL); // Same as error_reporting(E_ALL);同上 ini_set(’error_reporting’, E_ALL);
引荐教程:PHP视频教程
以上就是php设置毛病级别的细致内容,更多请关注ki4网别的相干文章!