首頁  >  文章  >  後端開發  >  如何在發送 HTTP 回應後保持 PHP 執行?

如何在發送 HTTP 回應後保持 PHP 執行?

Patricia Arquette
Patricia Arquette原創
2024-11-26 08:33:09932瀏覽

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」 header。
  7. 刷新輸出緩衝區以將回應標頭和訊息傳送到客戶端。
  8. 關閉會話以確保儲存所做的任何變更。
  9. 執行任何必要的處理,可能需要最多一分鐘。
  10. 輸出任何其他訊息或結果(這些不會發送到客戶)。

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

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