Страницы

Поиск по вопросам

понедельник, 3 февраля 2020 г.

Как проверить доступность страницы сайта?

#php #javascript #jquery


Есть каталог сайтов, где пользователи добавляют свои сайты (скриншот, название, описание
и так далее) но со временем не которые сайты перестают работать и администратору нужно
проверить, какие сайты работают а какие нет. (я понимаю можно каждую ссылку открывать
в браузере, но сайтов много и это не удобно) хочу сделать кнопку, напротив каждого
сайта и при клике проверять работает данная страница сайта или нет. 

Как можно проверить на php или js доступность страница сайта ?

if($page_url = 1 ){  
        echo "Страница работает";
    } else {  
        echo "Страница сайта не работает !!!";      
    }

    


Ответы

Ответ 1



Если проверять очень простым способом, можно попробовать что-то загружать с сайта, если загрузка успешная значит сайт работает. Например можно загружать title. function getTitle($url) { if(!$url) return ; $title=""; @$page=file_get_contents($url); if ($page) { if (preg_match("~(.*?)~iu", $page, $out)) { $title = $out[1]; } } return $title; } Проверка: $page_title = getTitle('http://www.site.com/news/index.html'); if($page_title){ echo "Страница работает"; } else { echo "Страница не работает"; } Вот еще один пример на cURL: //возвращает true, если домен доступен, false если нет function isDomainAvailible($domain) { //проверка на валидность урла if(!filter_var($domain, FILTER_VALIDATE_URL)){ return false; } //инициализация curl $curlInit = curl_init($domain); curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10); curl_setopt($curlInit,CURLOPT_HEADER,true); curl_setopt($curlInit,CURLOPT_NOBODY,true); curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true); //получение ответа $response = curl_exec($curlInit); curl_close($curlInit); if ($response) return true; return false; } Проверка на cURL: if (isDomainAvailible('http://www.site.com/news/index.html')){ echo "Домен доступен!"; } else { echo "Упс, домен не доступен."; }

Ответ 2





Ответ 3



Смотря какаую проверку Вы хотите сделать. Если просто отвечает сервер или нет - это одно. Послать обычный запрос и ждать ответа... А вот если нужна проверка по содержанию, то тут сложнее, и скорее всегол без контроля не обойтись... Можно сделать ajax вызов на страницу сайта. Если в результате пришел разумный HTML код, значит страница жива. Однако, что если сайт хостился на shared сервисе, и был закрыт. В таком случае обычно хостинги вешают свои страницы типа "Сайт закрыт". А это реальный HTML. и следовательно он пройдет проверку... В реале вы можете лишь проверить отвечает ли сервер на запрос. Но содержимое сайта надо проверять вручную...

Комментариев нет:

Отправить комментарий