Вытягивание мыла

Статус
В этой теме нельзя размещать новые ответы.

apekoff

Создатель
Регистрация
19 Авг 2008
Сообщения
40
Реакции
1
Не могу додуматься как повторять функцию до положительного результата (получения письма)
PHP:
$GmailDomen="gmail.com";
echo "<br>Заходим в $Email по паролю $GmailPass.";
$MailText = GetNewGmailMessages($Email,$GmailPass);
preg_match_all("/(?<=Password : ).*/",$MailText,$Password);
if (!isset($Password[0][0]))
{
	AddFile("./Errors.txt","\r\n\r\n новых аккаунтов не найдено!");
	echo " новых аккаунтов не найдено!";
}
else
	echo " аккаунтов найдено: ".count($Password[0]).".";
нужно чтобы если -"новых аккаунтов не найдено!" - то опять делался заход на почту
PHP:
$GmailDomen="gmail.com";
echo "<br>Заходим в $Email по паролю $GmailPass.";
$MailText = GetNewGmailMessages($Email,$GmailPass);
preg_match_all("/(?<=Password : ).*/",$MailText,$Password);
и так далее пока письмо не придет ..
Как это сделать ?Голова чумная :)
 
как вариант через while, цикл будет повторяться, пока $Password[0][0] не существует

PHP:
set_time_limit(0);
while (!isset($Password[0][0])) {
$GmailDomen="gmail.com";
echo "<br>Заходим в $Email по паролю $GmailPass.";
$MailText = GetNewGmailMessages($Email,$GmailPass);
preg_match_all("/(?<=Password : ).*/",$MailText,$Password);
// sleep(5); # интервал попыток 5 сек
}

if (isset($Password[0][0])) echo " аккаунтов найдено: ".count($Password[0]).".";
 
PHP:
set_time_limit(0);
while (!isset($Password[0][0])) {
$GmailDomen="gmail.com";
echo "<br>Заходим в $Email по паролю $GmailPass.";
$MailText = GetNewGmailMessages($Email,$GmailPass);
preg_match_all("/(?<=Password : ).*/",$MailText,$Password);
// sleep(5); # интервал попыток 5 сек
}
if (isset($Password[0][0])) echo " аккаунтов найдено: ".count($Password[0]).".";
что то не так .. Он почему то читает только первое письмо , такое ощущение как будто значение $Password остановилось на первом варианте .Как только перезапускаю скрипт через некоторое время - вылезают все следующие $Password в строчку (шутк 9) .Скрипт в первом случае повторялся 10 раз и показывал 1 значение $Password.. хм вот ..оставил прошлый вариант поставил задержку в 25 секунд :)
 
жесть то какая....

1) "/(?<=Password : ).*/" знак вопроса тут чего делает? если ты хотел ограничить какой то символ, то его наверное надо было перед вопросом указать? а .* на кой вообще, если ты эти символы даже рассматривать не будешь? скинь текст для парсинга сюда, поправим твою маску.

2) приучи себя, что $Password[0][0] выдает не то что ты в скобках пытался найти а вообще всю фразу, которая с маской совпадает. Если ты хотел найти только то что в скобках, надо писать $Password[0][1]

3) если используется preg_match_all то обычно обходят все значения которые она возвращает в цикле. в твоем примере достаточно было и preg_match

4) логически было правильнее бы использовать do {} while(); а не while{};
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху