Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Ign0Rb
3 / 3 / 3
Регистрация: 04.07.2016
Сообщений: 64

Fatal error: Maximum execution time of 30 seconds exceeded

08.10.2016, 16:51. Показов 1941. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Пишу скрипт автоматической рассылки сообщений пользователям, недавно вступившим в группу Вконтакте. Алгоритм простой и с ним я разобрался. Основную часть скрипта я написал и успешно протестировал. Работает так: получается массив всех участников, с помощью записанного в файл id последнего участника, которому было отослано сообщение получается массив новых участников, рассылается сообщение, новый id сохраняется в файл. Заказчик подумал-подумал и спрашивает: "А что будет если этот участник выйдет из группы?" Я решил проблему так: записываю в файл вообще всех новых участников в формате id,id,id, потом достаю это из файла, кладу в массив и сравниваю с участниками группы: если последний id есть, то его использую как метку, если нет, то удаляю из массива одно значение и по-новой.

Вот мой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    
$group_access_token = "792af633d6e3863550e398753705eec46313e450e467094649dd7803d1932dae211ccc616584229f3ea47"; // Ключ доступа Вконтакте к тестовой группе
 
    $source = file_get_contents("https://api.vk.com/method/groups.getMembers?group_id=84537967&sort=time_asc&access_token=".$group_access_token);// Получение списка id в группе
    $result = json_decode($source);
    $users = $result -> response -> users;//Получение массива с id
 
    $ids = "199334161,246425847,244138146,168102701,210061033,196522144,186989024,280673101,265377937,288159695,211901048,221746460,288033594,212310543,251737459,237077552,279150880,287885960,208274909,288233337,68306959,283553680,203221340,278344943,275237076,290021738,117906431,283365179,281829454,288182202,235785234,164229915,289233805,253785826,279525939,258610736,263797105,287203603,216740867,279627113,21359638,273000845,193618484,287420711,287450650,275261159,136355912,283362415,254061829,287412190,275252042,285208097,218451414,264401825,273302464,151359098,342397536,342397780,342397857,342397566,12345678,12345678";//Содержимое файла
    $ids = explode(",", $ids);//Получение массива
 
    while(!in_array($last_id, $users)){
        array_splice($ids, -1, 0); //Удаление последнего элемента
        $last_id = end($ids);
    }
Код полностью автономен, данные из файла я вставил напрямую. Все массивы проверял функцией print_r(), высвечивал все переменные, но все в порядке. Выдаёт ошибку "Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\1.ru\index.php on line 11". Печально. Подскажите, что не так, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2016, 16:51
Ответы с готовыми решениями:

Fatal error: Maximum execution time of 30 seconds exceeded in
файлы в 5 строк обработал быстро, а вот в парудесятко тысяч крутиться 5 минут окошко браузере и потом Fatal error: Maximum execution time...

Ошибка Fatal error: Maximum execution time of 900 seconds exceeded in
у меня есть цикл, который должен выполниться 8344 раза. как сделать, чтобы отработал цикл нормально, без ошибок. $numericName =...

Робота через прокси, возникает ошибка Fatal error: Maximum execution time of 30 seconds exceeded in
Вот фрагмент кода в котором я через прокси пытаюсь загрузить содержимое http://www.site.ru но возникает ошибка Fatal error: Maximum...

5
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.10.2016, 16:57
Цитата Сообщение от Ign0Rb Посмотреть сообщение
Подскажите, что не так, пожалуйста.
Цитата Сообщение от Ign0Rb Посмотреть сообщение
Maximum execution time of 30 seconds exceeded
https://translate.google.ru/?h... 20exceeded
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
08.10.2016, 16:57
Цитата Сообщение от Ign0Rb Посмотреть сообщение
Maximum execution time of 30 seconds
На сервере стоит ограничение на макс выполнение скрипта - 30 секунд.

Надо либо думать, как сократить это время, либо увеличивать лимит.
0
 Аватар для Ign0Rb
3 / 3 / 3
Регистрация: 04.07.2016
Сообщений: 64
08.10.2016, 17:17  [ТС]
Обновляю код из-за пропущенной строки. Перезапустил с ней - результат тот же.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    
    
$group_access_token = "792af633d6e3863550e398753705eec46313e450e467094649dd7803d1932dae211ccc616584229f3ea47"; // Ключ доступа Вконтакте к тестовой группе
 
    $source = file_get_contents("https://api.vk.com/method/groups.getMembers?group_id=84537967&sort=time_asc&access_token=".$group_access_token);// Получение списка id в группе
    $result = json_decode($source);
    $users = $result -> response -> users;//Получение массива с id
 
    $ids = "199334161,246425847,244138146,168102701,210061033,196522144,186989024,280673101,265377937,288159695,211901048,221746460,288033594,212310543,251737459,237077552,279150880,287885960,208274909,288233337,68306959,283553680,203221340,278344943,275237076,290021738,117906431,283365179,281829454,288182202,235785234,164229915,289233805,253785826,279525939,258610736,263797105,287203603,216740867,279627113,21359638,273000845,193618484,287420711,287450650,275261159,136355912,283362415,254061829,287412190,275252042,285208097,218451414,264401825,273302464,151359098,342397536,342397780,342397857,342397566,12345678,12345678";//Содержимое файла
    $ids = explode(",", $ids);//Получение массива
 
    $last_id = end($ids);
 
    while(!in_array($last_id, $users)){
        array_splice($ids, -1, 0); //Удаление последнего элемента
        $last_id = end($ids);
    }
Цитата Сообщение от Jewbacabra Посмотреть сообщение
https://translate.google.ru/?hl=ru&t...nds%20exceeded
Я достаточно хорошо разбираюсь в английском, чтобы понять, что все это значит.

Цитата Сообщение от Jodah Посмотреть сообщение
На сервере стоит ограничение на макс выполнение скрипта - 30 секунд.
Надо либо думать, как сократить это время, либо увеличивать лимит.
Это я уже видел на просторах всемирной... Скрипт на 1 секунду, т.е. если заменить вот это:
PHP
1
 $last_id = end($ids);
на вот это:
PHP
1
 $last_id = array_pop($ids);
то все выполняется без проблем, но array_pop() удаляет последний элемент, а мне это не нужно.

Добавлено через 4 минуты
Или если заменить это

PHP
1
$last_id = end($ids);
на это

PHP
1
$last_id =$ids[count($ids) - 1];
тоже зависает. А ведь через echo и "$last_id = end($ids)", и "$last_id =$ids[count($ids) - 1]" нормально выводятся.

Добавлено через 5 минут
Поставил в php.ini max_execution_time = 60. Вот что вышло: "Fatal error: Maximum execution time of 60 seconds exceeded in Z:\home\localhost\www\1.ru\index.php on line 23".
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
08.10.2016, 18:29
Лучший ответ Сообщение было отмечено Ign0Rb как решение

Решение

Цитата Сообщение от Ign0Rb Посмотреть сообщение
while(!in_array($last_id, $users)){
* * * * array_splice($ids, -1, 0); //Удаление последнего элемента
* * * * $last_id = end($ids);
* * }
Видимо тут у вас бесконечный цикл. Обратите внимание что array_splice($ids, -1, 0) расшифровывается как удалить 0 элементов начиная с предпоследнего.

p.s. А вообще какие то странные махинации. Комментарии не помогают прочесть код.
1
 Аватар для Ign0Rb
3 / 3 / 3
Регистрация: 04.07.2016
Сообщений: 64
08.10.2016, 18:41  [ТС]
Цитата Сообщение от tarasalk Посмотреть сообщение
Обратите внимание что array_splice($ids, -1, 0) расшифровывается как удалить 0 элементов начиная с предпоследнего.
Да вы гений, господин! Спасибо, вам! Я, как обычно, поднял огромный кипишь из-за такого... А все дело в том, что у меня перед этим: "array_splice($ids, -1, 0)" стояло это: "$last_id = array_pop($ids)", и я, не зная, что array_pop() удаляет последний элемент, наивно полагал, что все нормально работает, вопреки всей нелогичности кода.

Добавлено через 2 минуты
Цитата Сообщение от tarasalk Посмотреть сообщение
А вообще какие то странные махинации. Комментарии не помогают прочесть код.
Значит не в ту сторону я старался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2016, 18:41
Помогаю со студенческими работами здесь

Maximum execution time of 30 seconds exceeded
Fatal error: Maximum execution time of 30 seconds exceeded in c:\wamp\www\BD.php on line 35 что то связанное с времен им соединения ...

Maximum execution time of 30 seconds exceeded
Всем привет! У меня ВДСка. Пытаюсь запустить скрипт загрузки файла, файл не загружается. В логах PHP следующее: PHP Fatal error: Maximum...

Maximum execution time of 180 seconds exceeded
Всем привет! Сегодня без изменений в скрипте начал вылетать парсер с таймаутом Fatal error: Maximum execution time of 180 seconds...

Увеличить время выполнения скрипта (Maximum execution time of N seconds exceeded)
Написал парсер для сайта, с библиотекой PHP Simple HTML DOM Parser. Все отлично работает, но возникла такая проблема: "Fatal error:...

Простой парсер выдает ошибку "Maximum execution time of 30 seconds exceeded"
Доброго времени суток, форумчане. Нуждаюсь в вашем совете. В общем написал простенький парсер для статистики ливинтернета, все работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru