PHP ini_set max_execution_time и memory_limit не работают - PullRequest
1 голос
/ 06 марта 2012

У меня есть следующий код внутри файла (я запускаю его напрямую через Терминал или я захожу на веб-страницу, это не имеет значения).

error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', true);
ini_set('max_execution_time', 1);
ini_set('memory_limit', '512M');
sleep(2);
echo ini_get('max_execution_time');

И он выводит 1.Разве это не должно выдать ошибку, говоря, что время выполнения было превышено?

От phpinfo() Я получаю:

max_execution_time  1   55
memory_limit    512M    1024M

1 Ответ

1 голос
/ 06 марта 2012

Время сна () не учитывается во время выполнения, потому что оно не выполняет никакого кода во время сна.

Примечание:

Функция set_time_limit () и директива конфигурации max_execution_time влияет только на время выполнения скрипта сам. Любое время, потраченное на деятельность, которая происходит за пределами исполнения сценария, таких как системные вызовы с использованием system (), потоковые операции, запросы к базе данных и т. д. не учитываются при определении максимального время, когда скрипт был запущен. Это не так в Windows где измеренное время реально.

Сюда входит sleep (), как упоминалось несколько раз в комментариях как для sleep (), так и для set_time_limit (), например,

riki151205-Jun-2007 05:29

Обратите внимание, что под Linux спит время игнорируется, но в Windows оно считается временем выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...