11

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

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

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

更改所有 error_reporting() 调用确实很麻烦,尤其是因为应用程序需要定期更新,并且我想避免运行安装后的 hack 脚本。

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

4

2 回答 2

10

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

disable_functions = error_reporting

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

见:http ://www.php.net/manual/en/ini.core.php#ini.disable-functions

于 2013-10-25T12:52:48.933 回答
5

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

根据文档,这不能在 .htaccess 文件中使用,因此您必须在整个服务器上使用它......也许有点太多了。

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

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

[PATH=<path>]
error_reporting = 0
disable_functions = "error_reporting"
于 2013-10-25T12:54:19.787 回答