[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите как правильно написать условие + цикл
Bratishka
Добрый вечер! Есть переменная в которой результат открытия страницы курлом $test = curl_exec($ch); (т.е. исходный код)
И нужно как-то сделать чтобы если текста нет (например сайт лежит) то было еще 10 попыток его получения, и перед каждой писался номер попытки, а в конце писалось в общем удачно или нет прошло.
А если сайт нормально работает, то например выдать его текст исходный
Пробовал такой код:

for($i = 1; $i <=10; $i++){
echo "\r\nParsing. Attempt # $i\r\n";

if($test == ''){
echo "\r\nAttempt failed\r\n";
$test;
break;
}
else
echo $test;
}


Работает некорректно. Если сайт работает, то он 10 раз выдает его исходных код. А нужно 1 раз. Подскажите что не так пожалуйста



Спустя 5 минут, 21 секунда (8.06.2012 - 21:10) Игорь_Vasinsky написал(а):
))) не проще file_get_content() ?
сайт есть - будет контент
сайт лежит - будет false

курлом нужно читать ответ сервера в заголовках.

или file_get_content() не false - запускай курл.

Спустя 3 минуты, 15 секунд (8.06.2012 - 21:13) Bratishka написал(а):
Т.е. перед тем как курл запустить сделать file_get_content(адрес сайта), и если будет текст, то запускать курл, а если нет - то сайт лежит? А как сделать тогда 10 попыток проверить, вдруг сайт очнется

Спустя 1 час, 33 минуты, 24 секунды (8.06.2012 - 22:47) walerus написал(а):
Игорь_Vasinsky Bratishka file_get_content устроит если только не нужны куки и прочая лабуда, можно и курлом проверять заголовки.

$info = curl_getinfo( $ch );
там уже разбирать ответ сервера, ну и перед этим проверить, не равен ли пустоте, ответ от курла.
for($i = 1; $i <=10; $i++)
{
echo "\r\nParsing. Attempt # $i\r\n";

if( trim( $test ) != '' )
{
echo "\r\nAttempt failed\r\n";
$test;
break;
}
else
echo $test;
}

вот так нужно, а у Вас он только при НЕ получении контента остановится.

Спустя 22 минуты, 20 секунд (8.06.2012 - 23:09) Bratishka написал(а):
walerus
не совсем получается. Перенаправил этот сайт на 127.0.0.1, т.е. не работает он. Но 10 попыток нету. 1 попытка и все

Сделал trim( $test ) != '', работает неправильно, сразу все 10 попыток якобы делает. Не может так быть.

А как сделать чтобы если попытка прошла успешно то просто шел дальше код выполнять? просто убрать else echo $test; и все?

Спустя 7 минут, 38 секунд (8.06.2012 - 23:17) Игорь_Vasinsky написал(а):
Цитата
file_get_content устроит если только не нужны куки и прочая лабуда,

да знаю я biggrin.gif

Цитата
можно и курлом проверять заголовки.

Цитата
курлом нужно читать ответ сервера в заголовках.


проверить доступность экономнец 1й функцией чем библиотекой wink.gif

Спустя 36 минут, 37 секунд (8.06.2012 - 23:53) Bratishka написал(а):
куки и прочая лабуда нужна, поэтому курлом хочу делать я

Спустя 4 минуты, 54 секунды (8.06.2012 - 23:58) Игорь_Vasinsky написал(а):
))). как со стенкой разговариваю.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.