专门为 exec() 设置最大执行时间[重复]
Posted
技术标签:
【中文标题】专门为 exec() 设置最大执行时间[重复]【英文标题】:Set maximum execution time for exec() specifically [duplicate] 【发布时间】:2011-01-13 05:26:58 【问题描述】:是否可以设置exec($command)
函数的最大执行时间?有时我的$command
执行时间过长,1 分钟后停止并出现此错误:
致命错误:C:\xampp\htdocs\files.php 第 51 行的最大执行时间超过了 60 秒
如何增加exec()
命令的最大执行时间?
if (allow())
exec($command);
if (file_exists($file))
//exec($makeflv);
echo '<script language="javascript" type="text/javascript">window.top.window.aviout(1);</script>';
else
echo $error;
else
echo $error;
【问题讨论】:
顺便说一句,这个问题至少被回答了 3 次:***.com/questions/1176497/…、***.com/questions/1928249/… 和 ***.com/questions/2147567/… 【参考方案1】:见http://php.net/manual/en/function.set-time-limit.php
set_time_limit($seconds)
如果$second
设置为0
,则没有时间限制。请注意,您应该谨慎地完全取消时间限制。您不希望任何无限循环慢慢消耗所有服务器资源。上限,例如180
总比没有限制好。
或者,您可以仅针对某些代码块调整时间设置,并在时间关键代码运行后重置时间限制,例如
$default = ini_get('max_execution_time');
set_time_limit(1000);
... some long running code here ...
set_time_limit($default);
【讨论】:
好的,我把 set_time_limit(180) 放在 exec($command) 之前;它似乎工作!但是在时间到期后,我想回显一个错误,我该怎么做?? 超过时限会自行抛出错误。这就是让您首先提出问题的原因。如果您需要自定义错误处理程序,请参阅php.net/manual/en/function.set-error-handler.php 是的,但是当我提交一个以 iframe 开头的 process.php 页面时,我只想回应这个: 其中结果是错误还是成功! 如果set_error_hander
没有帮助,那我恐怕不明白。考虑提出一个新问题,因为它是一个不同的问题。
@SuhailGupta 用于整个 请求。【参考方案2】:
在.htaccess
中,您可以设置这些值:
php_value max_execution_time 1000000
php_value max_input_time 1000000
您也可以在 PHP 脚本的顶部尝试此操作:
set_time_limit(0);
【讨论】:
【参考方案3】:你可以像这样使用ini_set()
:
ini_set('max_execution_time', 0);
将其设置为 0 将使您的脚本根据documentation of the ini-directive 永远运行。
【讨论】:
如何在我的函数中包含 ini_set()? 在任何你喜欢的地方插入行。不涉及魔法。以上是关于专门为 exec() 设置最大执行时间[重复]的主要内容,如果未能解决你的问题,请参考以下文章
PHP 执行系统外部命令 system() exec() passthru()