發送回應後繼續 PHP 處理
您的 PHP 腳本從伺服器接收數據,處理它並產生回應。但是,您面臨一個問題,即需要立即將回應傳送到伺服器,但之後還需要進行額外的處理。
使用輸出緩衝和FastCGI 的解決方案
要讓PHP 在發送回應後繼續處理,可以採用以下解決方案:
- 啟用忽略使用者中止:ignore_user_abort(true); (可選)
- 設定無限制的時間限制:set_time_limit(0);
- 使用輸出緩衝提前發送回應:ob_start();
- 發送回應並設定適當的標題: echo $response;接下來是header('連接:關閉'); and header('Content-Length: '.ob_get_length());;
- 刷新輸出緩衝區:ob_end_flush(); @ob_flush(); lush();
- 對於在PHP-FPM 上運行的高於5.3. 3 的PHP版本,完成請求:fastcgi_finish_request();
- 繼續進行其他處理。
- 結束腳本:die(); (如果使用set_time_limit(0),則特別重要)
此方法將釋放與Web 伺服器的連接,同時允許PHP 繼續執行並執行所需的回應後處理。
以上是發送回應後如何繼續 PHP 處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!