【问题标题】:Set maximum execution time for exec() specifically [duplicate]专门为 exec() 设置最大执行时间[重复]
【发布时间】: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;
   }

【问题讨论】:

标签: php exec


【解决方案1】:

.htaccess 中,您可以设置这些值:

php_value max_execution_time 1000000
php_value max_input_time 1000000

您也可以在 PHP 脚本的顶部尝试此操作:

set_time_limit(0);

【讨论】:

    【解决方案2】:

    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 处理整个请求
    【解决方案3】:

    你可以像这样使用ini_set()

    ini_set('max_execution_time', 0);
    

    将其设置为 0 将使您的脚本根据documentation of the ini-directive 永远运行。

    【讨论】:

    • 如何在我的函数中包含 ini_set()?
    • 在任何你喜欢的地方插入行。不涉及魔法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多