ホームページ >バックエンド開発 >PHPチュートリアル >register_shutdown_function AND fastcgi_finish_request,registershutdownhook_PHP 教程

register_shutdown_function AND fastcgi_finish_request,registershutdownhook_PHP 教程

WBOY
WBOYオリジナル
2016-07-12 08:59:36954ブラウズ

register_shutdown_function と fastcgi_finish_request、registershutdownhook

php では、リクエストが終了しようとしているときに 2 つのメソッドが実行されます。メソッド名はそれぞれ register_shutdown_function と fastcgi_finish_request です。実行のタイミングは似ていますが、機能とアプリケーションのシナリオは異なります。 2 つの方法の違いを比較することは、この記事の焦点では​​ありません。この記事の焦点は、2 つの方法の適用シナリオを説明することです。

シャットダウン機能の登録

特徴:

メソッドを登録します。リクエストリクエストが実行されると、登録されたメソッドが呼び出されます。実行中にエラーが発生し、このリクエストが強制終了された場合でも、登録されたメソッドは引き続き実行されることに注意してください。

アプリケーションシナリオ 1:

その機能を使用して、いくつかのエラーの詳細情報を取得できます。サンプルコードは次のとおりです:

リーリー

出力される情報はおおよそ次のとおりです:

リーリー

上記のコードはメモリ不足エラーを正常にキャプチャしていることがわかります。

アプリケーションシナリオ 2
リクエストが正常にクローズされたかどうかを確認します。サンプルコードは次のとおりです:

リーリー

ページの出力結果は次のとおりです: 失敗

die関数まで呼ばれていることがわかります。登録した監視機能も正常に実行されます。

fastcgi_finish_request

機能:
データをクライアントにフラッシュします。このメソッドを呼び出した後、出力内容はクライアントに出力されません。

アプリケーションシナリオ:

リクエストの処理内容の一部をクライアントに送信する必要がない場合は、まずクライアントに出力する内容を生成してから、このメソッドを呼び出すことができます。メソッドが呼び出された後、コンテンツがクライアントに出力されます。クライアントに出力する必要のないコンテンツは、このメソッドの後に配置できます。これにより応答性が向上します。サンプルコードは次のとおりです:

リーリー

ページの出力結果は、 a
fastcgi_finish_request メソッド後の echo "b" がクライアントに出力されていないことがわかります。ただし、ファイルは /tmp/test ディレクトリに通常どおり作成されていることがわかります。しかし、/tmp/bo56 ファイルは作成されませんでした

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1097792.html技術記事 register_shutdown_function と fastcgi_finish_request、registershutdownhook は、リクエストが終了しようとしているときに実行される PHP の 2 つのメソッドです。メソッド名は register_shutdown_...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。