在向客戶端發送 HTTP 回應後,如何保持 PHP 執行?

Barbara Streisand
發布: 2024-11-15 04:17:02
原創
732 人瀏覽過

How can I keep PHP execution alive after sending the HTTP response to the client?

在HTTP 回應後保持PHP 執行活動

在PHP 作為Apache 的mod_php 運作的環境中,在HTTP 執行回應後維持PHP 執行回應後維持PHP 執行回應後維持PHP 執行回應後維持PHP 執行反應的環境中會出現一個常見的挑戰向客戶端發送HTTP 回應。這個限制源自於需要在特定的超時時間內向應用程式報告錯誤訊息。

要解決這個問題,關鍵在於在不中斷正在進行的操作的情況下儘早發送 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();
flush();
session_write_close(); // Added per suggestion
// Do processing here
sleep(30);
echo('Text user will never see');
登入後複製

此程式碼片段最初會刷新所有待處理的輸出並將 HTTP 連接配置為關閉。透過忽略使用者發起的中止嘗試並指定內容長度,可以有效地調度 HTTP 回應。隨後可以執行正在進行的處理,例如資料庫操作或發送電子郵件。

透過此方法,PHP 可以向客戶端發送完整的 HTTP 回應,並在指定的時間內繼續執行,有效解決問題外部應用程式施加的錯誤報告限制。這種方法在必須在不超過預定逾時的情況下執行耗時操作的場景特別有用。

以上是在向客戶端發送 HTTP 回應後,如何保持 PHP 執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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