У меня есть форма записи события, которая позволяет вам ежемесячно устанавливать событие, которое будет повторяться в определенную дату. Все работает отлично, пока вы не остановите его в декабре. Когда вы его сохраняете, похоже, что на некоторое время загружается, но потом в конечном итоге падает.Сбой сценария повторяющегося сценария PHP, когда установлен на декабрь
Установка его на остановку в любой другой месяц отлично работает мгновенно. Он возвращает ошибку 500, поэтому я не думаю, что это проблема с таймаутом (этот сайт возвращает уведомление о тайм-ауте, когда это так).
Вот код
if ($_REQUEST["Daily"] == 'numbered') {
$endMonth = $_REQUEST['month'];
$exd = $_REQUEST['everyXdays'];
$inter = '-1';
if (($_REQUEST['everyXdays'] != '-1') && ($_REQUEST['everyXdays'] != $date1->format('d'))) {
$date1->setDate($date1->format('Y'),(int) $_REQUEST['month'],(int) $_REQUEST['everyXdays']);
}
for($date; $date->format('m') <= $endMonth; $date->add(new DateInterval('P1M'))) {
$eventDays[] = $_REQUEST['everyXdays'] < '0'
? $date->format('Y-m-t')
: $date->format('Y-m-').str_pad($_REQUEST['everyXdays'],2,"0",STR_PAD_LEFT);
}
}
код создает массив событий, которые вставляются в базу данных в качестве дочерних событий. Исходный родитель затем устанавливается в последний экземпляр события. В основном родительский элемент перемещается в конец диапазона дат и создает за ним дочерние экземпляры.
Второй оператор IF говорит, что если «everyXdays» не совпадает с исходной датой начала родителя, установите день как «everyXdays».
Цикл FOR - это то, что создает массив событий. $ date - это исходная дата начала, которая увеличивается на каждый цикл, а $ date1 - дата последнего события события.
Функция затем вставляет их все в базу данных. Я не включаю функцию, потому что, как я сказал ранее, она отлично работает, когда она настроена на любой другой месяц. Поэтому я уверен, что это не проблема.
что сообщение об ошибке об ошибке сообщает об ошибке? – RamRaider
PHP Неустранимая ошибка: допустимый размер памяти 67108864 байт исчерпан (пытался выделить 72 байта) Может ли это быть просто распределение памяти? Вы также можете настроить его на повторную неделю, и это создает больше примеров. Что вызывает это? – arch649
выглядит как утечка памяти, поэтому посмотрите на цикл – RamRaider