由于近日做的程序中涉及到的循環比較多且處理的情況較復雜,所以在運行程序時出現執行超時提示如下: Fatal error: Maximum execution time of 30 seconds exceeded in D:/php/AppServ/www/sum3/test.php on line 3
很簡單,意思是說腳本執行時間超過了30秒的上限。這個錯誤以前經常碰到,一般都是直接在頁面頭部加個 set_time_limit(0) 處理,今天特意將這個錯誤的處理方法做一下總結。
1.修改php的配置文件,找到php.ini文件,它一般應該放在你的C:/WINDOWS目錄下,然后找到 max_execution_time = 30 ;//設置成你想要的值,單位是秒, 這一行,這就是設置的執行時間最大值為30秒,你可以對這個值進行一下修正,改為你的期望值。(也可以直接設置成:max_execution_time = 0)
2.使用ini_set()函數,不是所有人都能修改php.ini文件的,那么你可以使用這個函數來改變你的最大執行時間限制值,如: ini_set('max_execution_time', '100'); 則設置為100秒,你也可以設置為0,那么就是不限制執行的時間。
3.使用set_time_limit()函數,set_time_limit(20)則表示最大執行時間加上20秒,但如果在php執行安全模式時,set_time_limit()將不會有結果,除非你用了第一種方法。
以下是部分講解:set_time_limit --- 限制最大的執行時間set_time_limit(PH3 , PHP4)set_time_limit --- 限制最大的執行時間語法 : void set_time_limit (int seconds)說明 : 設定一個程式所允許執行的秒數,如果到達限制的時間,程式將會傳回錯誤。
它預設的限制時間是30秒,max_execution_time的值定義在結構檔案中(在PHP3中叫做php3.ini,在PHP4則叫做php.ini),如果將秒數設為0,表示無時間上的限制。
當呼叫此函式時,set_time_limit( )會從零重新開始計算最長執行的時間,也就是說,如果最長執行時間為預設的30秒,而在呼叫此函式set_time_limit(20)之前已花了25秒來執行程式,則程式最長執行的時間將會是45秒。
注意 : 當PHP是執行在安全模式時,set_time_limit( )將不會有結果,除非是關閉安全模式或是修改結構檔案中(在PHP3中叫做php3.ini,在PHP4則叫做php.ini)的時間限制。
案例:如果沒有打開安全模式,設置程序運行時間為25秒,例如:
- if(!ini_get('safe_mode')){
- set_time_limit(25);
- }
新聞熱點
疑難解答