#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. и следовательно он пройдет проверку... В реале вы можете лишь проверить отвечает ли сервер на запрос. Но содержимое сайта надо проверять вручную...
Комментариев нет:
Отправить комментарий