解決PHP執行超時問題
當PHP頁面處理大事務時,頁面往往會發生超時的錯誤,我解決此問題的方法如下:
1.優化程序代碼:
這種方法可能有時立竿見影,但對一些已經很優化或者第三方開發的程序,可能用處不大,但我個人覺得這個辦法還是應該優先考慮,這個一個優秀程序員必需有的工作美德。
2.對多個任務進行拆分:
對于一些程序,可能問題并不出現在代碼效率上,如Paypal的SOAP調用,大量時間花費在網絡的數據傳遞上了,(此問題在Web Services的遠程調用時經常發生),我們當然不能等將來網速的提高來解決這個問題。其實我們可以查看一下在一個POST動作中是否包含了多個任務,如付費、發Email、發貨等等。如是這樣其實可以對這些任務進行拆分,把這個工作拆分成多個子工作來實現。如執行完付費任務時,使用PHP的Header函數重定向到發送Email的頁面,完成后再定向到其他頁面,采用redirect頁面的方式來接力地完成任務。
3.進行PHP設定值的修改
如果以上兩種方法仍然無法解決,代碼已經最優話,同時只有一個單任務的工作需要完成。針對這樣的情況,只能修改PHP的設定值了。不過建議不要直接修改PHP.ini,這樣會延長所有PHP執行的最大時間。簡單的方法就是使用init_set函數,以下的代碼把PHP最大執行時間設定為180秒。
ini_set('max_execution_time', '180');
同時可以使用ini_get把原來設置的max_execution_time保存下來,在進行完操作時回復原來的設定值。
