4

私はCodeIgniterを使用しており、index.phpに次の行を追加しました。

error_reporting(E_ALL ^ E_NOTICE); 
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', $_SERVER['DOCUMENT_ROOT'] . '/php_errors.log');

ただし、何らかの理由で、PHPは常に警告/エラーを表示し、書き込み可能なディレクトリにログを作成しません。「^E_NOTICES」の部分を削除して再送信すると、大量の通知が表示されるため、上記のコードがヒットしていることはわかっています。また、上記のコードの後に​​die()ステートメントをスローして、ヒットしていることを確認しました。最後に、コードベース全体を調べて、「display_errors」がコードの後半で使用されていないことを確認し、値0を上書きしました。

エラーの表示を停止できない他の何かが欠けている可能性がありますか?

4

1 に答える 1

0

CodeIgniterソースで「set_error_handler」を検索する必要があります。彼らのエラーハンドラは設定を尊重しているように見えますが、error_reporting設定は尊重していないようdisplay_errorsです。これはよくある間違いです。参照:カスタムPHPエラーハンドラーはPHP構成を尊重しますか?

于 2013-02-12T08:12:53.953 に答える