ホームページ  >  記事  >  バックエンド開発  >  PHPでエラーレベルを設定する

PHPでエラーレベルを設定する

王林
王林オリジナル
2019-09-26 17:40:155872ブラウズ

PHPでエラーレベルを設定する

php エラー レベルの設定

php.ini でエラーに対するサーバーのアラーム レベルを設定できます。デフォルトでは、PHP は通知を除くすべてのエラーを報告します。エラー レポート レベルは、事前定義された定数

によって設定されます。 構文:

int error_reporting ( [int level] )

パラメータ レベルが指定されていない場合、現在のエラー レポート レベルは次のようになります。戻ってきた 。次の項目は、レベルに指定できる値です:

PHPでエラーレベルを設定する

php.ini ファイルでは、デフォルトのレポートは、次のように通知を除くすべてのエラーです。ステートメントの設定:

error_reporting = E_ALL & ~ (E_NOTICE)

上記の式では、記号「&」は複数の条件の並列を示し、「~」は否定 (NOT) を意味します。警告メッセージを無視したい場合は、次のステートメントを設定できます:

error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)

php.ini ファイル内のエラー関連の設定は次のとおりです:

(1)error_reporting、エラー レベルを設定します

(2)display_errors、エラー レポートを表示するかどうか、ON に設定すると開く、OFF に設定するとすべてのエラー プロンプトが閉じます

(3)log_errors 、デフォルト設定は OFF、エラー ログを記録するかどうか;

(4)track_errors、デフォルト設定は OFF、このオプションは、PHP に提供させるのではなく、コード内のエラーを解決するのに役立ちます。デフォルトの機能。

PHP のエラー報告
php.ini ファイルには多くの構成設定があります。 Linux への PHP と Apache2 のインストールに関するドキュメントに示されているように、php.ini ファイルを設定し、適切なディレクトリに配置しておく必要があります。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。 2 つの変数とそのデフォルト値は次のとおりです。

display_errors = Off
error_reporting = E_ALL

これら 2 つの変数の現在のデフォルト値は、php.ini ファイル内で検索すると見つかります。 display_errors 変数の目的は明らかです。この変数は、エラーを表示するかどうかを PHP に指示します。デフォルト値はオフです。ただし、開発プロセスを容易にするために、この値を On に設定します。

display_errors = On

error_reporting 変数のデフォルト値は E_ALL です。この設定では、不適切なコーディング方法から無害なヒント、エラーまで、あらゆるものが表示されます。 E_ALL は開発するには少し粒度が細かすぎます。これは、ブラウザの出力を混乱させる小さな事柄 (変数が初期化されていないなど) についてのヒントも画面上に表示するためです。私が知りたいのはエラーと間違ったコーディング方法だけであり、無害なヒントは知りたいわけではありません。したがって、error_reporting のデフォルト値を次の値に置き換えてください:

error_reporting = E_ALL & ~E_NOTICE

Apache を再起動すれば準備は完了です。次に、Apache で同じことを行う方法を学びます。

サーバー上のエラー報告

Apache の動作によっては、PHP のバージョンが複数あるため、PHP でエラー報告を有効にしても機能しない場合があります。 Apache は 1 つの php.ini ファイルしか参照できないため、Apache が使用している PHP バージョンを判断することが難しい場合があります。 Apache が自身の設定にどの php.ini ファイルを使用しているかわからないことは、セキュリティ上の問題です。ただし、正しいエラー レベルが設定されるように Apache で PHP 変数を構成する方法があります。また、これらの構成変数をサーバー側で設定して php.ini ファイルをオーバーライドまたはプリエンプトして、より高いレベルのセキュリティを提供する方法を理解しておくこともお勧めします。

Apache を構成する場合、/conf/httpd.conf にある http.conf ファイルの基本構成がすでに公開されている必要があります。 php.ini ファイルですでに行われていることを実行するには、次の行を httpd.conf に追加して、php.ini ファイルを上書きします。

php_flag   display_errors         on
php_value error_reporting       2039

これにより、display_errors の php.ini ファイルがすでに上書きされます。設定、およびerror_reportingの値。値 2039 は E_ALL および ~E_NOTICE を表します。 E_ALL を使用する場合は、値を 2047 に設定します。繰り返しますが、Apache を再起動する必要があります。

次に、サーバー上でエラー報告をテストする必要があります。

error_reporting() 関数に関しては、一部のエラー メッセージをシールドできますが、PHP コアによって発生したエラーは PHP ファイルの直接の原因となるため、シールドすることはできません。書き込み形式が PHP のエンコード規則に従っておらず、ブロックできないエラーが発生したため、コンパイルに失敗しました。

一般的なものは次のとおりです:

// Turn off all error reporting;关闭所有的错误
error_reporting(0);
// Report simple running errors;报告一个简单的运行错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings …);包括报告一些未初始化的变量或捕捉变量名的拼写错误
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini;报告所有的错误但不包括E_NOTICE
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (bitwise 63 may be used in PHP 3);报告所有的错误
error_reporting(E_ALL);
// Same as error_reporting(E_ALL);同上
ini_set(’error_reporting’, E_ALL);

推奨チュートリアル:PHP ビデオ チュートリアル

以上がPHPでエラーレベルを設定するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。