如何在PHP中增加最大执行时间

252
我想在PHP中增加“最大执行时间”,但不通过更改“php.ini”文件实现。

我想从我的PHP文件中增加它。

这可行吗?

请使用 set_time_limit(n) 函数,其中 n 表示以秒为单位的时间。 - Robert
5
此问题已被 downvote 并标记为重复,但它的回答比该重复问题更加丰富。 - KalenGi
你可能需要增加服务器的最大执行时间。 - dlicheva
1
使用 ini_set('max_execution_time', 0); 可以获得无限制的执行时间。要忽略用户中止并允许脚本永久运行,请使用 ignore_user_abort(true);。 - Geordy James
4个回答

551
ini_set('max_execution_time', '300'); //300 seconds = 5 minutes
ini_set('max_execution_time', '0'); // for infinite time of execution 

将这段代码放在你的PHP脚本顶部,然后启动你的脚本!

引自使用ini_set()增加PHP脚本的执行时间限制


在Windows中可以工作,但在Linux中无法工作。 - AzizAhmad
1
适用于Linux(php-5.2.10-1.el5.centos.rpm) - kubanczyk
7
这个更改只适用于当前正在运行的脚本吗?还是新的最大限制会持续存在? - JCarlosR
11
根据这里的链接:http://php.net/manual/zh/function.ini-set.php,“配置选项将在脚本执行期间保持这个新值,并在脚本结束时恢复为原来的值。” - Va1iant
3
请注意,Web服务器也有超时指令,例如Apache的TimeOut,这是从这里引用的内容。“您的Web服务器可能有其他超时配置,可能会中断PHP执行。 Apache有一个Timeout指令,而IIS则具有CGI超时函数。两者默认为300秒。有关详细信息,请参阅您的Web服务器文档。” - Accountant م
显示剩余2条评论

165

如果safe_mode关闭,请使用以下语句

set_time_limit(0);

67

使用 PHP 函数

void set_time_limit ( int $seconds )

最长执行时间,以秒为单位。如果设置为零,则不会强制执行时间限制。

当 PHP 运行在安全模式下时,此函数无效。除了关闭安全模式或更改 php.ini 中的时间限制之外,没有其他解决方法。


4
我不知道为什么这篇回答被踩了,因为它是完美表述的。点赞。 - Fabian Pas

35

你可以尝试使用set_time_limit(n)函数。然而,如果你的PHP设置运行在安全模式下,你只能从php.ini文件中改变它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接