解决PHP执行超时:Maximum execution time of 30 seconds exceeded

使用站群程序的采集文件时,经常会遇到

Fatal error: Maximum execution time of 30 seconds exceeded in ......

这样的错误提示,意思是PHP执行超过了30秒的最大执行时间。

本文记录此错误的解决方法,以便下次查阅!

如何解决错误?

基本上,有3种方法可以处理此错误:

  • 修改php配置文件php.ini文件
  • 使用 ini_set() 函数
  • 使用set_time_limit()函数

(1)修改php配置文件php.ini文件

找到php.ini文件并在此文件中找到它:

max_execution_time = 30 ;

在此行中,将数字30设置为所需的值(以秒为单位)。

也可直接修改为:

max_execution_time = 0; //无限制

请注意,修改后需要重新启动Linux服务器。

(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中的时间限制。

set_time_limit 实例

如果未打开安全模式,安装程序将运行25秒。

例如:

<?php
if(!ini_get('safe_mode')){
set_time_limit(25);
}

 

教程专区

如何获取百度熊掌号的appid和token?

2020-4-15 23:31:34

教程专区

泛目录程序获取排名的原理

2020-4-16 16:39:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索