回應後繼續處理PHP
處理需要立即回應的請求時,可能需要在發送初始回應後繼續處理PHP到客戶端。
您的腳本從伺服器接收參數,產生回應,並需要防止伺服器將訊息視為已傳遞才可以繼續處理。雖然將訊息保存在資料庫中並使用 cron 作業可能是一種解決方案,但它對於即時回應來說並不理想。
要解決此問題,您可以使用以下PHP 函數:
ignore_user_abort(true); // Not required but recommended set_time_limit(0); // No time limit ob_start(); // Handle the request and generate the response 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 // Continue PHP processing after the response has been sent die(); // **Important** to ensure cleanup if set_time_limit(0) is used
透過利用這些函數,您可以向客戶端發送回應,關閉連接,並繼續執行PHP 腳本而不被中斷。這允許立即回應,同時仍然啟用訊息的非同步處理。
以上是向客戶端發送回應後如何繼續 PHP 處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!