11

私は error_reporting 呼び出しだらけのアプリケーションを実行していますが、PHP 5.5 を実行しているため、多くの減価償却警告が表示されます。このようにphp.iniファイルを正しく構成しました。

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

しかし、すべての error_reporting() 呼び出しはそれをオーバーライドします。error_reporting() へのランタイム呼び出しを無視するように設定する方法はありますか?

すべての error_reporting() 呼び出しを変更することは、特にアプリケーションを定期的に更新する必要があり、インストール後のハック スクリプトの実行を避けたいため、非常に面倒です。

アプリの名前は言いませんが、VBulletin 5 です。

4

2 に答える 2

10

disable_functions機能を無効にするために使用できるini-settingがあります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

Web サーバーの構成を制御できる場合は、オーバーライドできない値php_admin_valueに設定するために使用できます。error_reporting

ドキュメントによると、これは .htaccess ファイルでは使用できないため、サーバー全体で使用する必要があります...少し多すぎるかもしれません。

もう 1 つの可能性は、disable_functionsを使用して error_reporting を無効にすることです。欠点は、使用するたびに警告が表示されることですが、それを回避できます。

指定したスクリプトのみに影響するセクションを php.ini に追加できます。

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