ホームページ >バックエンド開発 >PHPチュートリアル >応答を送信した後に PHP 処理を続行するにはどうすればよいですか?

応答を送信した後に PHP 処理を続行するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 17:24:10838ブラウズ

How Can I Continue PHP Processing After Sending a Response?

応答送信後の PHP 処理の続行

PHP スクリプトはサーバーからデータを受信し、処理して、応答を生成します。ただし、応答をすぐにサーバーに送信する必要があるが、その後で追加の処理を行う必要があるという問題に直面します。

出力バッファリングと FastCGI を使用した解決策

応答の送信後に PHP が処理を継続できるようにするには、次の解決策を採用できます:

  1. 有効にするユーザーの中止を無視する:ignore_user_abort(true); (オプション)
  2. 無制限の時間制限を設定します: set_time_limit(0);
  3. 出力バッファリングを使用して応答を早めに送信します: ob_start();
  4. 応答を送信して設定します適切なヘッダー: echo $response;続いて header('Connection: close'); and header('Content-Length: '.ob_get_length());;
  5. 出力バッファをフラッシュします: ob_end_flush(); @ob_flush(); lush();
  6. PHP-FPM で実行されている PHP バージョン 5.3.3 以降の場合は、リクエストを終了します: fastcgi_finish_request();
  7. 追加の処理を続行します。
  8. スクリプトを終了します: die(); (set_time_limit(0) が使用されている場合は特に重要です)

このアプローチでは、PHP が実行を継続し、必要な応答後の処理を実行できるようにしながら、Web サーバーへの接続が解放されます。

以上が応答を送信した後に PHP 処理を続行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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