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

tho*_*ter 10 php

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

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Run Code Online (Sandbox Code Playgroud)

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

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

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

fee*_*ela 9

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

disable_functions = error_reporting
Run Code Online (Sandbox Code Playgroud)

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

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

  • 打击邪恶与*极端邪恶.我喜欢!+1 :) (6认同)

Ger*_*der 5

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

根据文档不能在.htaccess文件中使用,因此您将不得不在整个服务器上使用它...可能有点过多。

另一种可能性是使用disable_functions禁用error_reporting。不利的一面是,每次使用它都会收到一条警告,但是您可以避免该警告:

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

[PATH=<path>]
error_reporting = 0
disable_functions = "error_reporting"
Run Code Online (Sandbox Code Playgroud)