Ответов: 9 Просмотров: 1716
![](templates/InvisionExBB/im/spacer.gif) |
Добрый день всем!
Вторую неделю изучаю php )) Какие то непонятки получается решить самому при более внимательном изучении кода, какие то не могу понять совсем, поэтому прошу помощи.
Сейчас столкнулся с непонятным для меня поведением sleep в цикле foreach. Задача скрипта рассылать клиентам сообщения, не превышая разрешенное хостером в час. Для этого в цикл рассылки был вставлен оператор sleep:
CODE ( htmlphp):
скопировать код в буфер обмена
<?php if ( (isset($_POST['submit'])) && (isset($_FILES['file'])) && ($_FILES['file']['name'] != null) ) { // Формируем массив с адресами email для рассылки $emailsArray = explode("\n",$fileString); // Подсчитываем кол-во адресов $emailsCount = count($emailsArray); $emailsCountTotal = $emailsCount; // Отправляем сообщения foreach($emailsArray as $email) { echo 'Осталось отправить '.$emailsCount.' из '.$emailsCountTotal.'. Отправляем сообщение для: '.$email.'<br />'; mail($email,$_POST['subject'],$_POST['message']); $emailsCount--; } } ?>
Подразумевается, что после отправки каждого сообщения будет выдерживаться пауза в 5 секунд, после чего цикл продолжится. На самом деле это не работает: после нажатия submit браузер дает понять что все еще продолжается загрузка в течение имхо больше 5 секунд, после чего скрипт отправляет все сообщения разом.
Подскажите, что я не так делаю ?
P.s. Скрипт пока черновой, без проверок и прочих прелестей, сейчас надо только отработать механизм. |