如何配置PHP以在运行时忽略error_reporting()?

时间:2013-10-25 12:36:48

标签: php

我正在运行一个充满了error_reporting调用的应用程序,但我正在运行PHP 5.5,它有很多折旧的警告。我已正确配置我的php.ini文件。

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

但是所有的error_reporting()调用都会覆盖它。我有什么方法可以忽略对error_reporting()的运行时调用吗?

更改所有error_reporting()调用是一件非常麻烦的事情,特别是因为应用程序需要定期更新,我想避免运行安装后的hack脚本。

我不想提及应用程序的名称,它是VBulletin 5.

2 个答案:

答案 0 :(得分:9)

有一个初始设置disable_functions,您可以使用它来禁用error_reporting()功能。这样,应用程序无法通过此功能设置错误报告级别。

disable_functions = error_reporting
  

使用此指令只能禁用内部函数。用户定义的函数不受影响。   必须在php.ini中设置此指令。例如,您不能在httpd.conf中设置它。

请参阅:http://www.php.net/manual/en/ini.core.php#ini.disable-functions

答案 1 :(得分:5)

如果您可以控制网络服务器配置,则可以使用php_admin_valueerror_reporting设置为无法覆盖的值。

根据the documentation,这不能在.htaccess文件中使用,所以你必须在整个服务器上使用它......可能有点太多了。

另一种可能性是使用disable_functions来禁用error_reporting。缺点是每次使用时都会收到警告,但是你可以解决这个问题:

您可以在php.ini中添加仅影响指定脚本的部分:

[PATH=<path>]
error_reporting = 0
disable_functions = "error_reporting"