2014-01-17 88 views
3

我有一個需要很長時間才能加載的php/apache頁面。基本上,它看起來像這樣:告訴HTTP客戶端是否斷開

<?php 
     doHeavyStuff_1(); 
     doHeavyStuff_2(); 
     doHeavyStuff_3(); 
     printResults(); 
?> 

它時有發生的時間,客戶端斷開的處理,比如說中間,第一步和第二步之間。有沒有辦法在PHP來檢查客戶端是否仍然連接,並停止進一步處理,如果不是?我想我的代碼是這樣的:

<?php 
     doHeavyStuff_1(); 
     if(<clientDisconnected>) die; 
     doHeavyStuff_2(); 
     if(<clientDisconnected>) die; 
     doHeavyStuff_3(); 
     if(<clientDisconnected>) die; 
     printResults(); 
?> 

回答

1

通常PHP(作爲apache模塊)應該會自動停止,如果用戶斷開連接。沒有工作是必要的。

如果您有興趣:如果您希望PHP繼續處理,那麼有函數ignore_user_abort()。您應該開始閱讀手冊頁,尤其是註釋,以瞭解如何使用它以及可能發生哪些問題。

+0

如果客戶端斷開連接,他想停止進一步的處理。 ignore_user_abort會做相反的事情。 –

+1

@WayneWhitty哦,我沒有看到。在這種情況下,任何東西都不應該存在。 PHP將自動定期。 – hek2mgl