2017-08-17 3 views
-1

私は古いバージョンのphpで動作する非常に古いシステムを使用しています。ウェブサイトをチェックするために、私はすべてのエラー、警告、非推奨のメッセージなどを抑制しなければなりません。残念ながら、システム全体にコード内にたくさんのini_set("display_errors", "1");があります。すべてのエラー、警告、廃止予定などのメッセージを表示しない

PHPスクリプトが何を呼び出してもすべてを抑制することはできますか?たぶんphp.iniまたはhtaccess?

私はすでにphp.iniの "display_errors"を無効にしています。しかし、それは役に立たなかった。最高のエラーログの経験のために

+1

あなたは、あなたがphp.iniの –

+0

@caryaritferrerでそれを行うことができますこの質問は、ハードコードされた 'ini_set(" display_errors "、" 1 ");がすべての呼び出しを持つレガシーコードベースでエラーを抑止する方法に関するものです。私は重複していると主張されている(あるいは 'php.ini'を編集して)このユースケースにどのように対処しているのか分かりません。 – RiggsFolly

+0

https://stackoverflow.com/a/15949483/6257039 –

答えて

0

-1にerror_reportingの設定display_errorsをオフにし、それはあなたが構築することができる他のサイトで混合しないように、カスタムerror_log場所を設定します。

これを実行した後、iis_set()呼び出しの表示エラーを見つけて削除する必要があります。

端末では、tail -f /path/to/error_logと入力します。 Webページの表示を乱すことなく、通知、警告、エラーがリアルタイムでスクロールします。

このようにして、リファクタリング/修正が必要なログフォーマットを、はるかに目立たないログフォーマットで見ることができます。

0

これは、すべてのini_set("display_errors", "1");の呼び出しを検索し、コメントアウトすることが特に困難なが表示されていないが、代替は、カスタムエラーハンドラを作成(または既存のものを編集して)次のようになります。

<?php 

ini_set('display_errors', 1); 
error_reporting(-1); 

function ignore_errors($errno, $errstr, $errfile, $errline){ 
    // Optional error processing 
    return true; 
} 

$foo++; 

set_error_handler('ignore_errors'); 

$bar++; 
Notice: Undefined variable: foo in C:\...\scratch_7.php on line 11 

場合があり」エントリポイントがあまりにも多い場合は、メインのphp.iniファイルのauto_prepend_fileディレクティブで外部ファイルを呼び出すことができます。

関連する問題