我无法在短时间内关闭弃用的警告。它们来自一个垃圾堆脚本,我被迫工作了一段时间,其中他们过度使用带有/ 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
有什么想法吗?
答案 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);
?>