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

Patricia Arquette
リリース: 2024-11-26 08:33:09
オリジナル
935 人が閲覧しました

How to Maintain PHP Execution After Sending an HTTP Response?

HTTP 応答後の PHP 実行の維持

HTTP 応答後の PHP 実行の維持には、特に mod_php のような環境で特別な考慮が必要です。この課題に対処するために、次の解決策が提示されています。

PHP の実行を継続しながら HTTP 応答を送信するには、次のコード スニペットを利用できます。

<?php
ob_end_clean();
header("Connection: close");
ignore_user_abort(); // Optional
ob_start();
echo('Text the user will see');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Enable strange behavior
flush();            // Required for behavior to work
session_write_close(); // Suggested enhancement to ensure session data is saved
// Perform processing here
sleep(30);
echo('Text user will never see');
?>
ログイン後にコピー

このコードは次の手順を実行します。 :

  1. 出力バッファをクリアします。
  2. 「Connection: close」ヘッダーを設定します。 HTTP 接続を終了します。
  3. ユーザーがスクリプトを中止しようとしても無視します (オプション)。
  4. 残りの出力をキャプチャするために新しい出力バッファを開始します。
  5. メッセージを出力しますユーザーに送信します (すぐに表示されます)。
  6. 出力バッファーの長さを計算し、 「Content-Length」ヘッダー。
  7. 出力バッファをフラッシュして、応答ヘッダーとメッセージをクライアントに送信します。
  8. セッションを閉じて、行われた変更が確実に保存されます。
  9. 必要な処理を実行します。これには最大 1 分かかる場合があります。
  10. 追加のメッセージまたは結果を出力します (これらは、クライアント)。

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

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