首頁  >  文章  >  後端開發  >  如何在發送 HTTP 回應後運行 PHP 操作?

如何在發送 HTTP 回應後運行 PHP 操作?

Linda Hamilton
Linda Hamilton原創
2024-11-17 11:17:02300瀏覽

How to Run PHP Operations After Sending an HTTP Response?

執行PHP 操作發送HTTP 回應

在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 回應。然後,它開始在後台處理資料庫請求和電子郵件,這可能需要長達一分鐘的時間。請注意,一旦發送回應,用戶互動將被切斷。

以上是如何在發送 HTTP 回應後運行 PHP 操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn