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

Linda Hamilton
リリース: 2024-11-17 11:17:02
オリジナル
299 人が閲覧しました

How to Run PHP Operations After Sending an HTTP Response?

HTTP 応答送信後の PHP 操作の実行

PHP 5.2 では、mod_php として実行しているときに HTTP 応答を送信すると、長時間実行されているデータベースが中断される可能性がありますリクエストと電子メールの処理。この問題に対処するには、PHP が完全な HTTP 応答をクライアントに送信し、さらに一定期間操作の実行を継続できるようにする手法を利用できます。

次のスニペットはこれを実現します。

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(); // Strange behaviour, will not work
flush();            // Unless both are called !
session_write_close(); // Added a line suggested in the comment
// Do processing here 
sleep(30);
echo('Text user will never see');
ログイン後にコピー

実行すると、スクリプトはすぐに完全な HTTP 応答をクライアントに送信します。その後、バックグラウンドでデータベース要求と電子メールの処理が開始されます。これには最大で 1 分かかる場合があります。応答が送信されると、ユーザーの対話は中断されることに注意してください。

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

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