Xwab
Форумыnavigate_nextИстория

Топ: Небольшие вопросы по PHP
Сообщения
aBSuRD

Хм.. А можно ли проверить сайт на существование? Не домен..а так сказать страницу. Вот допустим как узнать что http://a.wen.ru или http://a.ru не существует?

06 Янв 2011, 13:01
deadline404

aBSuRD, if(file_get_contents('http://a.wen') == true){
echo 'Страница доступна';
}

06 Янв 2011, 13:03
aBSuRD

D.T.S, не работает..

06 Янв 2011, 13:39
wappartizan

aBSuRD, думаю можно получить курлом заголовок страницы и если статус > 400 то станица не найдена

как то так вероятно:

$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'http://'.$link);
curl_setopt($cu, CURLOPT_TIMEOUT, 10); // скока секунд ждать ответа 10 наверно даже многовато
curl_setopt($cu, CURLOPT_HEADER, 1); // читать заголовок
curl_setopt($cu, CURLOPT_NOBODY, 1); // читать ТОЛЬКО заголовок без тела
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cu, CURLOPT_FRESH_CONNECT, 1); // не использовать cache
if (!curl_exec($cu)){
//недоступен сайт
print 'Сайт недоступен.';
} else{
$httpcode = curl_getinfo($cu, CURLINFO_HTTP_CODE);
if ($httpcode > 400){
//сайт доступен но вернул ощибку
print 'Сайт возвратил ошибку ('.$httpcode.').';
}

}

06 Янв 2011, 13:43
Fashion

wappartizan, для этого есть get_headers()

06 Янв 2011, 14:04
Fuelen

aBSuRD, с помощью функции get_headers() получи заголовки и с 0 элемента массива вырежы код ответа сервера. http://www.nbuv.gov.ua/libdoc/codes.htm

06 Янв 2011, 14:05
wappartizan

Fashion, ну как бы согласен..
тока вот на php4 его вроде не было..

кстати не нашел в описании возможно ли в get_headers() установить скока времени он будет ждать ответа, например 3 секунды..
или что произойдет если ответ не будет получен долго?

06 Янв 2011, 14:12
Fashion

wappartizan, на счет таймаута точно незнаю, но есть функции управления отправляемых заголовков. может там и можно задать лимит

06 Янв 2011, 14:19
Rior

Есть ли подробное описание регулярных выражений? Чтобы все было понятно, как мaнyaл.

06 Янв 2011, 14:27
Fuelen

wappartizan, забудь про пхп 4.
<?php

$MicroTime = microtime(1);
var_dump(get_headers('http://dagdajgngmgmgmggdajpdmgp.com', 1));
echo '<br/>'.round(microtime(1) - $MicroTime, 4).' sec';
Затестите)) куйня времени.
если get_headers($url) === false, то домена нет.

06 Янв 2011, 14:41
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.