2013-03-01 72 views
-2

我有一個php腳本,肯定需要很長時間來處理。在set_time_limit(0)中使用它有用嗎?即使將時間限制爲0,我也會看到有些時候會出現500個內部服務器錯誤。在php中處理如此耗時的腳本的最佳方式是什麼?長時間運行的腳本php的Set_time_limit

+1

set_time_limit(0);是一個更好的選擇,我一直在使用它來執行非常大的數據和其工作正常... – 2013-03-01 04:49:30

+0

只要記住,當你set_time_limit,計時器得到重置。所以如果你迭代一個數組,在foreach循環中設置一些適當的時間。這將阻止該過程花費數年時間,但仍然有足夠的時間來執行迭代。 – 2013-03-01 05:28:21

回答

1

如果您嘗試從瀏覽器中執行長時間運行腳本,你必須運行到各種超時,從PHP,代理,Web服務器和瀏覽器的機會。你可能無法控制所有這些。

任何長時間運行的腳本都應該從命令行運行。這樣你就可以把所有的問題都拿出來,除了很容易覆蓋的php執行時間限制之外。

0

如果你有機會到php.ini文件然後設置的max_execution_time在它像

max_execution_time = 300 

,或者你可以將用戶的.htaccess來處理它像它運行超過360秒

php_value max_execution_time 300 
+0

可能的重複項:http://stackoverflow.com/questions/5451503/phps-set-time-limit-throws-a-500-error – alwaysLearn 2013-03-01 05:01:49

-1

腳本(我希望max_execution_time)會自動發出內部服務器錯誤,即使應用了set_time_limit

你可以在你的頁面上有這個。

<?php 
ini_set('max_input_time', time in seconds); 
ini_set('max_execution_time', time in seconds); 
?> 

或在php.ini

設置max_input_timemax_execution_time任何你喜歡的。

或在.htaccess

php_value max_input_time 300 
php_value max_execution_time 300