PHP error_reporting打开或关闭

时间:2014-10-14 18:15:11

标签: php error-reporting

我无法在短时间内关闭弃用的警告。它们来自一个垃圾堆脚本,我被迫工作了一段时间,其中他们过度使用带有/ e修饰符的preg_replace。而不是去修复所有执行此操作的地方,在我正在处理它时关闭已弃用的警告似乎更好。

奇怪的是,问题在于,开头的error_reporting函数表示脚本似乎只有“On / Off”效果。也就是说,我可以使用error_reporting(0)完全关闭报告,我可以使用error_reporting(E_ALL)之类的内容完成所有操作。但是使用以下任何选项都没有任何影响。我的页面顶部仍然有100多个已弃用的警告。

<?php
error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(E_ALL & ~E_DEPRECATED);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

我已经验证我的php.ini文件设置为E_ALL & ~E_DEPRECATED)(24575),并在phpinfo()中显示。项目根目录中的.htaccess文件为空。为什么会有一个,我不知道。

PHP 5.5.9-1ubuntu4.4

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

我想说可能还有另一个页面或脚本正在将error_reporting设置为不同的值。您可以在没有args的情况下调用error_reporting()来获取当前值。将其设置为某些内容,并在包含其他文件后检查该值是否已更改。

答案 1 :(得分:0)

error_reporting(E_ALL | E_STRICT); 

只是说“嘿,记录这些错误/警告/通知”

我想你需要 -

ini_set('display_errors', '0');

尝试一下。

答案 2 :(得分:0)

解决方案:

ini_set("display_errors",'off');

在你的php脚本中使用它。它会隐藏你页面中的警告。

答案 3 :(得分:0)

Other interesting options for that function:

<?php

// 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
error_reporting(E_ALL ^ E_NOTICE);

// For PHP >=5.3 use: E_ALL & ~E_NOTICE

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>