2010-02-05 55 views
4

我有一個上傳表單將mp3上傳到我的網站。我有一些間歇性的問題與一些用戶,我懷疑是上傳連接緩慢......set_time_limit()超時

但無論如何,第一行代碼是set_time_limit(0);它修復了一些用戶連接,需要一段時間上傳,但有些仍然超時,我不知道爲什麼。

它說腳本超過了60秒的限制執行。該腳本沒有循環,所以它不像它是某種無限循環。

奇怪的是,無論第一行代碼是什麼,它總是會說「第一行,第二行的錯誤」,即使它是set_time_limit(0);。我試着擦除它,第一行代碼似乎總是出錯,它甚至沒有給出我爲什麼不能執行php頁面的暗示。

這是一個問題,只有很少的用戶正在經歷,似乎沒有其他人受到影響。任何人都可以提出一些想法,爲什麼會發生這種情況?

回答

6

set_time_limt()只會影響頁面上PHP代碼的實際執行。您要設置PHP指令max_input_time,該指令控制腳本將接受輸入(如文件)的時間。問題在於你需要在php.ini中設置它,就好像缺省的max_input_time一樣,它永遠不會到達試圖用ini_set()更改它的腳本。

+0

謝謝,這似乎解決了我的問題! :) – Tek 2010-02-05 06:19:35

1

當然,PHP手冊中提到了一些事情。

確保PHP未在安全模式下運行。當PHP在safe_mode中運行時,set_time_limit沒有影響。

其次,這是我認爲你的問題在於..... 注意:set_time_limit()函數和配置指令max_execution_time隻影響腳本本身的執行時間。在確定腳本運行的最長時間時,不包括使用system()系統調用,流操作,數據庫查詢等腳本執行之外發生的任何活動時間。在測量時間是真實的Windows上,這不是事實。

所以你的流可能是罪魁禍首。

你可以發佈一些你的上傳腳本,你是否調用一個單獨的文件來處理上載使用頭?

+0

我在腳本中測試了使用sleep()的超時時間,並沒有超時,但在循環中執行其他計算確實使腳本超時。 – Ben 2013-05-16 17:39:42

+1

不確定它是否違反規則,但如果鏈接到您的網站可能只是一個好主意,如果它與您的答案有關。 – 2015-11-01 04:23:33

0

嘗試ini_set('max_execution_time', 0);

相關問題