php程序運(yùn)行時(shí)報(bào)錯(cuò):Fatal error Maximum execution time of 30 seconds exceeded
PHP程序代碼執(zhí)行很長(zhǎng)時(shí)間,然后出現(xiàn)以下錯(cuò)誤提示:
Fatal error: Maximum execution time of 30 seconds exceeded in ......
這意味著PHP執(zhí)行時(shí)間超過了30秒的限制。
處理此錯(cuò)誤的解決辦法:
1.修改php配置文件php.ini文件
2.使用 ini_set() 函數(shù)
3.使用set_time_limit()函數(shù)
1)修改php配置文件php.ini文件
找到php.ini文件并在此文件中找到它:
max_execution_time = 30 ;
在此行中,將數(shù)字30設(shè)置為所需的值(以秒為單位)。
也可直接修改為:
max_execution_time = 0; //無限制
修改后重啟php
2)使用 ini_set() 函數(shù)
對(duì)于那些無法修改php.ini或者只想臨時(shí)修改,可以使用ini_set()函數(shù),來更改最大執(zhí)行時(shí)間限制。
在程序頂部添加以下代碼:
ini_set('max_execution_time','100');
以上設(shè)置為100秒,你也可以將其設(shè)置為0,表示不限于執(zhí)行時(shí)間。
3)使用set_time_limit() 函數(shù)
在程序的頂部添加:
set_time_limit(100);
這表示最長(zhǎng)執(zhí)行時(shí)間設(shè)置為100秒。
當(dāng)然,參數(shù)也可以設(shè)置為0,意味著無限。
set_time_limit 函數(shù)說明:
void set_time_limit ( int $seconds )
此函數(shù)的功能是設(shè)置允許腳本運(yùn)行的時(shí)間(以秒為單位)。
如果超出此設(shè)置,腳本將返回致命錯(cuò)誤。
默認(rèn)值為30秒,如果此值存在,則它是php.ini中max_execution_time中定義的值。
調(diào)用此函數(shù)時(shí),set_time_limit()將從零重新啟動(dòng)超時(shí)計(jì)數(shù)器。
換言之,如果超時(shí)默認(rèn)為30秒,并且當(dāng)腳本運(yùn)行25秒時(shí),調(diào)用set_time_limit(20),則腳本可以在超時(shí)之前運(yùn)行總共45秒。
當(dāng)php以安全模式運(yùn)行時(shí),此功能不起作用。
可以關(guān)閉安全模式:
在php.ini中將safe_mode設(shè)置為off。
或更改php.ini中的時(shí)間限制。
set_time_limit 實(shí)例
如果未打開安全模式,安裝程序?qū)⑦\(yùn)行25秒。
例如:
<?php
if(!ini_get('safe_mode')){
set_time_limit(25);
}