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

クライアントに応答を送信した後、PHP 処理を続行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-11 00:23:09758ブラウズ

How Can I Continue PHP Processing After Sending a Response to the Client?

応答後の PHP 処理の続行

即時の応答が必要なリクエストを処理する場合、最初の応答を送信した後も PHP の処理を​​続行する必要がある場合があります。

スクリプトはサーバーからパラメータを受け取り、応答を生成し、サーバーが処理を続行する前に、メッセージが配信されたとみなします。メッセージをデータベースに保存し、cron ジョブを使用することは解決策になる可能性がありますが、リアルタイム応答には理想的ではありません。

この問題を解決するには、次の PHP 関数を利用できます:

ignore_user_abort(true); // Not required but recommended
set_time_limit(0); // No time limit

ob_start();
// Handle the request and generate the response
echo $response; // Send the response
header('Connection: close');
header('Content-Length: '.ob_get_length());
ob_end_flush();
@ob_flush();
flush();
fastcgi_finish_request(); // Required for PHP-FPM

// Continue PHP processing after the response has been sent

die(); // **Important** to ensure cleanup if set_time_limit(0) is used

これらの関数を利用すると、クライアントに応答を送信し、接続を閉じ、中断されることなく PHP スクリプトの実行を続行できます。これにより、メッセージの非同期処理を有効にしながら、即時応答が可能になります。

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

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