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

HTTP 応答を送信した後に PHP コードを実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-30 22:19:11
オリジナル
703 人が閲覧しました

How Can I Execute PHP Code After Sending an HTTP Response?

応答ディスパッチ後の PHP の実行

PHP スクリプトでは、サーバー リクエストに応答した後、さらにデータを処理する必要が生じることがよくあります。このようなシナリオの 1 つは、受信メッセージ パラメーター (「ID_OF_MESSAGE」および「TEXT_OF_MESSAGE」) の処理と、「ANSWER_TO_ID」および「RESPONSE_MESSAGE」パラメーターを使用した応答の生成を含みます。

ただし、HTTP 200 応答をサーバーに送信すると、すぐにマークが付けられます。サーバー側で配信されたメッセージ。即時応答の生成が不可欠であるため、これにはジレンマが生じます。

これを克服するには、次のことができます。

ignore_user_abort(true); //optional
set_time_limit(0);

ob_start();
// Handle initial processing
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 (PHP > 5.3.3)

// Continue processing after request dispatch
die(); // Ensure script termination
ログイン後にコピー

ignore_user_abort() と set_time_limit(0) を設定することで、スクリプトは無期限に実行を続けることができます。 。 ob_* 関数は、応答ヘッダーと本文をすぐに送信します。 die() ステートメントはスクリプトを終了します。これは、set_time_limit(0) の使用時に無限実行を防ぐために必要です。

このテクニックを使用すると、受信リクエストを処理し、応答を送信し、待機せずに PHP スクリプトの処理を続行できます。ブラウザが完全な応答を受信できるようにします。

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

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