我正在运行一个充满了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.
有一个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
如果您可以控制网络服务器的配置,则可以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)
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |