執行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中文網其他相關文章!