首頁 > 後端開發 > php教程 > 發送HTTP回應後如何執行PHP程式碼?

發送HTTP回應後如何執行PHP程式碼?

Susan Sarandon
發布: 2024-12-30 22:19:11
原創
699 人瀏覽過

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

回應調度後執行 PHP

PHP 腳本經常需要在回應伺服器請求後進一步處理資料。其中一個情境涉及處理傳入訊息參數(“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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板