Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Использование цикла
Форумы портала PHP.SU » » Вопросы новичков » Использование цикла

Страниц (1): [1]
 

1. МаксимАндреевич - 25 Июня, 2016 - 22:27:28 - перейти к сообщению
Здравствуйте, уважаемые.
Сам я являюсь чайником, поэтому прошу помощи у Вас.
Задача такова: нужно отправить сообщения всем пользователям.
В принципе скрипт работает, но выполняется он слишком долго и успевает отправить около 50-70 сообщений, дальше вылетает ошибка.

Так же нужно выводить на экран информацию не после выполнения всего цикла, а после каждой интеграции. Знаю, что с помощью одного php этого не сделать и нужно использовать аякс, но руки не из того места)

Вот примерный код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $ids = getids(); // id пользователей > 5000 значений
  4. foreach ($ids as &$value) {
  5.     send($value,'сообщение'); //функция отправки сообщения
  6. echo 'сообщение пользователю '.$value.' отправлено';
  7.    sleep(3);
  8. ob_flush (); flush ();
  9. }
  10. ?>
  11.  
2. Prizma - 26 Июня, 2016 - 13:43:26 - перейти к сообщению
В начале скрипта и скрипт будет выполняться неограниченное время
3. МаксимАндреевич - 26 Июня, 2016 - 18:47:52 - перейти к сообщению
Спасибо. Попробую.
Однако памяти может не хватить.
4. Ismail - 26 Июня, 2016 - 19:38:39 - перейти к сообщению
Почитайте про отложенную загрузку в гугле, вот например http:// www[dot]itlessons[dot]info/php/sending-e[dot][dot][dot]-or-swiftmailer/
5. chugusov - 27 Июня, 2016 - 20:15:54 - перейти к сообщению
А зачем sleep(3); поставил?
Проблема твоя скорее всего в том, что любой веб-сервер ограничивает по времени выполнения скрипта. Сколько пользователей всего? Может без слипа успеет. Нет, разбей на части.

 

Powered by ExBB FM 1.0 RC1