Установите максимальное время выполнения для exec() специально

Возможно ли установить максимальное время выполнения функции exec($command)? Иногда выполнение моего $command длится слишком долго, останавливаясь через 1 минуту и ​​представляя эту ошибку:

Неустранимая ошибка: максимальное время выполнения на 60 секунд превышено в C:\xampp\htdocs\files.php в строке 51

Как увеличить максимальное время выполнения команды 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;
   }

Ответ 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);

Ответ 2

вы можете использовать ini_set() следующим образом:

ini_set('max_execution_time', 0);

Установка значения 0 приведет к тому, что ваш script будет работать вечно в соответствии с документацией по ini-директиве.

Ответ 3

В .htaccess вы можете установить следующие значения:

php_value max_execution_time 1000000
php_value max_input_time 1000000

Вы также можете попробовать это в верхней части PHP script:

set_time_limit(0);