カスタム エラー ハンドラーを使用した解析エラーと致命的エラーの処理
一般に、カスタム エラー ハンドラーは解析エラーと致命的エラーを処理できないと考えられていますが、これは完全に正確ではありません。別のアプローチを利用することで、実際にカスタム エラー ハンドラーを使用してこれらのエラーをトラップして処理できます。
シャットダウン関数の使用
解析エラーと致命的なエラーを処理するための鍵register_shutdown_function() で登録されたシャットダウン関数を使用することです。この関数はスクリプトの終了時に呼び出され、捕捉されなかったエラーをインターセプトできるようになります。
エラー プリハンドラー (prepend.php)
エラー ハンドラーがすべての PHP スクリプトにアクセスできるため、prepend.php のようなファイルを先頭に追加することを検討してください。
set_error_handler("errorHandler"); register_shutdown_function("shutdownHandler");
エラー ハンドラー (errorHandler)
この関数は、レベルに基づいてエラーを処理し、適切にログに記録します:
function errorHandler($error_level, $error_message, $error_file, $error_line, $error_context) { // Handle errors according to $error_level and log them using mylog() }
シャットダウン ハンドラー(shutdownHandler)
スクリプト終了時に、この関数は残りの捕捉されなかったエラーを処理します:
function shutdownHandler() { $lasterror = error_get_last(); // Handle last error based on its type and log it using mylog() }
ログ関数 (mylog)
この関数は、データベースやデータベースなどの目的の場所にエラーを記録するために使用されます。 file.
実装
このカスタム エラー処理メカニズムを設定することにより、解析エラーや致命的エラーを含むすべてのエラー レベルを処理できるようになりました。エラー処理は、prepend.php ファイルが含まれるすべてのスクリプトで一貫しています。
考慮事項
PHP.ini 構成
すべての PHP スクリプトの先頭に prepend.php を自動的に追加するには、次の行を php.ini に追加します。 :
auto_prepend_file = "/homepages/45/d301354504/htdocs/hmsee/cgi-bin/errorhandling.php"
このアプローチは、カスタム エラーを使用して解析エラーと致命的エラーを処理するための包括的なソリューションを提供します。ハンドラー。
以上がカスタム エラー ハンドラーは本当に PHP の解析エラーと致命的なエラーをキャッチできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。