我有PHP不推荐使用的错误充斥日志文件和Drupal状态页面如下:
: Function ereg() is deprecated in mysite/includes/file.inc on line 893.
我应该可以在我的php.ini中关闭E_DEPRECATED错误,但是尽管设置为:
它没有效果error_reporting = E_ALL & ~E_DEPRECATED
phpInfo()报告error_reporting主值和本地值22527.
我做了
grep -R error_reporting
在我的文档根目录中,希望找到任何硬编码错误级别,但没有运气:
./includes/common.inc: // If the @ error suppression operator was used, error_reporting will have
./includes/common.inc: if (error_reporting() == 0) {
./modules/system/system.module: 'page arguments' => array('system_error_reporting_settings'),
./modules/system/system.admin.inc:function system_error_reporting_settings() {
./modules/system/system.install: $err = error_reporting(0);
./modules/system/system.install: error_reporting($err);
除了可能是system.install中的第一行之外,我什么都看不到,但是如果我是对的,应该关闭所有错误。
我没有在.htaccess中设置error_reporting,但这样做也没有任何效果。
我希望有一个解决方案不涉及common.inc中的硬编码错误级别(哪些工作,我尝试过 - 但显然是不合适的。)
我知道弃用的错误是升级到PHP 5.3的结果,但降级PHP不是选项(新站点现在在5.3上测试的同一台服务器上运行,发生这些错误的站点有2个几个月的生活)。我也无法升级到与5.3很好地兼容的Drupal版本,因为不幸的是前任所有者在没有记录他的更改的情况下对核心模块进行了管理。
版本内容:
PHP 5.3.2-1,Ubuntu 10.04,Drupal 6.13在一个站点上,6.5(!! 1!)在另一个站点上,Apache 2.2
答案 0 :(得分:3)
您是否尝试将index.php编辑为
error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
答案 1 :(得分:2)
我在我的php.ini
文件中使用了这个,可以隐藏那些已弃用的错误。希望它能帮到你! =)
error_reporting = E_ALL & ~E_DEPRECATED & -E_WARNING
答案 2 :(得分:0)
我不知道有关停用错误报告的信息,但您可以按ereg
替换所有preg_match
个功能..!