推薦手冊:php完全自學手冊
#當你在做一個抓取程式的時候,php空白了好長一段時間然後報出現如下這個錯誤提示:
Fatal error: Maximum execution time of 30 seconds exceeded in ......
很簡單,意思是說腳本執行時間超過了30秒的上限。
這個錯誤以前常常碰到,通常都直接在頁頭加個 set_time_limit(0) 處理,今天刻意將這個錯誤的處理方法做總結。
經過查閱相關資料,對於PHP入門教程的學者們處理這個錯誤的方法基本上有三種。
(1)修改php的設定檔 php.ini 檔案(這個檔案預設安裝的話,在/etc/下面)
找到 php.ini 這個文件,然後在這個檔案中找到:
max_execution_time = 30 ;這一行,將數字 30 設定為你想要的值,單位是秒。
(也可以直接修改為:max_execution_time=0;//無限制)注意這樣修改後需要重新啟動伺服器。
例如你的是Apache,用service httpd restart
(2)使用 ini_set() 函數
對於那些無法修改 php.ini的朋友來說,你可以使用ini_set()這個函數來改變你的最大執行時間限制值,在程式的頂部加入如下程式碼:
ini_set('max_execution_time','100');
以上設定的為100秒,你也可以設定為0,那麼就是不限制執行的時間。
(3)使用set_time_limit() 函數
#在程式的頂端加入:set_time_limit(100);則表示最大執行時間設定為了100秒,當然也可以將參數設為0,意思同上。
set_time_limit 函數特別說明:void set_time_limit ( int $seconds ) 此函數的功能是設定允許腳本運作的時間,單位為秒。
如果超過了此設置,腳本返回一個致命的錯誤。
預設值為30秒,或是在php.ini的max_execution_time被定義的值,如果此值存在。當此函數被呼叫時, set_time_limit()會從零開始重新啟動逾時計數器。
換句話說,如果逾時預設是30秒,在腳本運行了25秒時呼叫 set_time_limit(20),那麼,腳本在逾時之前可執行總時間為45秒。當php運作於安全模式時,此功能不能生效。
除了關閉安全模式(在 php.ini 中將 safe_mode 設定為 off)或改變 php.ini 中的時間限制,沒有別的辦法。
案例:
如果沒有開啟安全模式,設定程式運行時間為25秒。
例如:
if(!ini_get('safe_mode')){ set_time_limit(25); }
相關文章推薦:
1.讓php逾時的方法是什麼
2.php請求介面逾時如何解決
相關影片推薦:
1.獨孤九賤(4)_PHP影片教學
相關建議:
PHP執行外部程式實作方法#
詳解PHP執行外部程式的實作程式碼
提高php執行效率的50個技巧
以上是PHP執行超時30秒報錯如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!