PHP の致命的なエラーのキャッチ
PHP の set_error_handler() は、致命的なエラー (E_ERROR) をキャプチャしようとすると失敗することがよくあります。これは、存在しない関数呼び出しや、致命的なエラーを引き起こすその他のインスタンスを操作する場合に特に問題になります。
この制限を回避するには、バージョン 5.2 の PHP の register_shutdown_function() を利用できます。次のコード スニペットは、その実装を示しています。
register_shutdown_function("fatal_handler"); function fatal_handler() { $errfile = "unknown file"; $errstr = "shutdown"; $errno = E_CORE_ERROR; $errline = 0; $error = error_get_last(); if ($error !== NULL) { $errno = $error["type"]; $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_mail(format_error($errno, $errstr, $errfile, $errline)); } }
解決策を完了するには、error_mail 関数と format_error 関数を定義します。以下に例を示します。
function format_error($errno, $errstr, $errfile, $errline) { // Code to format and display error information goes here }
error_mail 機能に Swift Mailer の使用を検討してください。
追加の参照については、次のリソースを参照してください。
以上が「register_shutdown_function()」を使用して PHP の致命的なエラーをキャッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。