Функции Язык программирования PHP

set_time_limit

(PHP 3, PHP 4)

set_time_limit - ограничивает время выполнения.

Описание

void set_time_limit (int seconds)

Устанавливает время в секундах, в течение которого скрипт может работать. Если это значение достигнуто, скрипт возвращает фатальную ошибку. По умолчанию лимит - 30 секунд или, если оно существует, значение max_execution_time, определённое в файле конфигурации. Если seconds имеет значение 0, лимита нет.

При вызове set_time_limit() рестартует счётчик таймаута с нуля. Иначе говоря, если таймаут по умолчанию 30 секунд, прошло 25 секунд выполнения скрипта и сделан такой вызов set_time_limit(20), скрипт будет работать 45 секунд перед таймаутом.

set_time_limit() не действует, если PHP запущен в режиме safe mode. Нет иного выхода, кроме отключения safe mode или изменения лимита времени в файле конфигурации.

Примечание: функция set_time_limit() и директива конфигурации max_execution_time влияют только на время выполнения самого скрипта. Любое время, затраченное на деятельность вне выполнения скрипта, такую как системные вызовы с помощью system(), функция sleep(), запросы к БД etc. не включается при подсчёте максимального времени работы скрипта.


Назад Оглавление Вперёд
set_magic_quotes_runtime Вверх version_compare

Повторение

Когда субпатэрн в скобках квантифицирован минимальным количеством повторений, которое больше 1, или имеет ограничение максимума, для откомпилированного патэрна требуется больше места, пропорционально размеру минимума или максимума.

Если патэрн начинается с .* или с .{0,} и установлена опция PCRE_DOTALL (эквивалентная Perl'овской /s), разрешая, таким образом совпадение . с символами новой строки, то патэрн неявно заякоривается, поскольку всё, что идёт следом, будет испытываться относительно каждой символьной позиции в строке-субъекте, поэтому после первой нет другой позиции для возобновления попыток найти полное совпадение.
PCRE рассматривает такой патэрн так, как если бы ему предшествовало \A. Когда известно, что строка-субъект не содержит символов новой строки, предпочтительнее установить PCRE_DOTALL, если патэрн начинается с  .*, чтобы получить эту оптимизацию, или, альтернативно, использовать ^ для явного обозначения заякоривания.

Когда захватывающий субпатэрн повторяется, захваченным значением является подстрока, которая совпадает с последней итерацией. Например, после того как

(tweedle[dume]{3}\s*)+

совпадает с "tweedledum tweedledee", значением захваченной подстроки будет "tweedledee". Однако, если имеются вложенные захватывающие субпатэрны, соответствующие захваченные значения могут быть установлены в предыдущих итерациях. Например, после того как

/(a|(b))+/

совпадёт с "aba", значением второй захваченной подстроки будет "b".