php の魔法の fastcgi_finish_request_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:30:30
オリジナル
869 人が閲覧しました

少しわかりにくいかもしれませんが、いくつかの例で説明しましょう:

コードをコピーします コードは次のとおりです:

echo 'Example:'
echo '; あるべきか、そうでないのか、それが問題です。';
file_put_contents('log.txt', 'あるべきか、そうでないのか、それが問題です。');ブラウザ (コマンドラインではありません!) このスクリプトを実行すると、対応する文字列は出力されませんでしたが、対応するファイルが生成されたことがわかりました。これは、fastcgi_finish_request を呼び出した後、クライアントの応答が終了したが、同時にサーバー スクリプトが実行し続けていることを示しています。
この機能を適切に使用すると、アイロンが熱いうちに打つための別の例を次に示します:


コードをコピーします

コードは次のとおりです:
echo '例:'; file_put_contents('log.txt', date('Y-m-d H:i:s') . "ビデオ n をアップロード",
file_put_contents(' log.txt', date('Y-m-d H:i:s ') . "形式 n を変換",
file_put_contents('log.txt', date('Y-m-d H:i:s); ') . "画像 n を抽出"、


;
時間のかかる操作をシミュレートするためにコード内でスリープが使用されています。ブラウジングはブロックされませんが、詳細についてはログを参照してください。

最後に思い出させていただきますが、Yahoo は Web サイトの高速化のためのベスト プラクティスの中で、バッファを早めにフラッシュすることについて言及しました。これは、PHP のフラッシュ メソッドを使用して、表面上はコンテンツをできるだけ早くクライアントに送信することです。 fastcgi_finish_request はこの記事で紹介されているものと似ていますが、本質的にはまったく異なりますので、混同しないでください。

再投稿 PS: このメソッドを調べてみました。呼び出されると、応答が送信され、接続が閉じられますが、flush を呼び出したり、Echo を高速化したりするのと比較すると、PHP の実行は終了しません。以前紹介しましたが、この方法はより簡単です

さらに、コードの移植性の観点から、次のコードをコードに添付できます:

コードをコピーします


コードは次のとおりです:


if (!function_exists("fastcgi_finish_request ")) {
function fastcgi_finish_request() { }

} は非 fpm 環境でコードのデプロイメントの問題を引き起こしません。

http://www.bkjia.com/PHPjc/323231.html

www.bkjia.com
tru​​e
http://www.bkjia.com/PHPjc/323231.html

技術記事

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート