我从一个在线源下载一个JSON文件,当它通过循环运行时,我得到这个错误:

致命错误:C:\wamp\www\temp\fetch.php第24行超过最大执行时间30秒


当前回答

set_time_limit($time_in_second); // 0 for unlimited time

如果需要长时间运行脚本,我在运行时使用这个php函数。 详情请点击这里。

其他回答

你的循环可能是无止境的。如果不是,你可以像这样延长最大执行时间:

ini_set('max_execution_time', '300'); //300 seconds = 5 minutes

and

set_time_limit(300);

可用于临时延长时间限制。

您的脚本超时了。看一下set_time_limit()函数来延长执行时间。或者分析脚本,使其运行得更快:)

要扩展max_execution_time,可以使用ini_set或set_time_limit。

// Set maximum execution time to 10 seconds this way
ini_set('max_execution_time', 10);
// or this way
set_time_limit(10);

!! 但要注意,两个函数重启的时间也算脚本已经执行了

sleep(2);
ini_set('max_execution_time', 5);

register_shutdown_function(function(){
    var_dump(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']);
});

for(;;);

//
// var_dump outputs float(7.1981489658356)
//

因此,如果您想要设置脚本可以运行的确切的最大时间,您的命令必须是第一个。

这两个功能之间的区别是

Set_time_limit不会返回是否成功的信息,但会在错误时抛出警告。 Ini_set成功时返回旧值,失败时返回false,没有任何警告/错误

我们可以用三种不同的方法来解决这个问题。

1)使用php.ini文件

2)使用。htaccess文件

3)使用Wp-config.php文件(Wordpress)

上面所有的答案都是正确的,但我用一个简单的方法在某些情况下避免它。

把这个命令放在脚本的开头:

set_time_limit(0);