Скрипт проверки доступности сайта

Аптайм сайта (от англ. uptime) — время его непрерывной работы – крайне важная характеристика доступности сайта. Для того чтобы убедиться в доступности или недоступности сайта, необходимо выполнить проверку. Проверку доступности сайта можно провести с помощью PHP скрипта, о чем мы и поговорим далее.

Самый простой инструмент для проверки сайта на доступность – это модуль PHP cURL. С помощью него мы будем выполнять проверку статуса доступности того или иного сайта.

Проверка доступности сайта

Следующий кусочек кода используется для проверки доступности домена с помощью cURL. Для большей полезности, весь код, приведенный снизу, обернут в функцию, которая называется isSiteAvailable().

Функция isSiteAvailable() выполняет cURL запрос и проверяет доступность домена, а также находится ли он онлайн. Если сайт доступен — возвращается TRUE, иначе возвращается FALSE, т.е. сайт находится офлайн.

// Проверка правильности URL
if(!filter_var($url, FILTER_VALIDATE_URL)) <
return false;
>

// Инициализация cURL
$curlInit = curl_init($url);

// Установка параметров запроса
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
curl_close($curlInit);

return $response ? true : false;
>

Как использовать?

Вызывайте функцию isSiteAvailable() со строковым аргументом, представляющим собой URL адрес сайта, доступность которого вы хотите проверить. И в зависимости от ответа вы можете предпринимать дальнейшие действия.

Вот так просто можно проверить, доступен ли сайт или нет с помощью PHP и cURL.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Читайте также  При одновременном изменении высоты и ширины окна

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2019 Русаков Михаил Юрьевич. Все права защищены.

    Проверка доступности сайта с помощью fopen()

    Скрипт, приведенный ниже, пытается прочитать страницу (картинку, css-файл и др.), по заданному url. Если ответ от сервера с содержимым не поступит в течении 10 секунд, сайт или то, что запрошено, будет считаться не доступным.

    По умолчанию в PHP ожидание ответа посланного с помощью сокетов (fopen) длится 60 сек.

    Проверка ответа сервера при помощи cURL (Libcurl)

    cURL — подключаемая библиотека (в PHP она называется Libcurl) для работы по различным протаколам, в том числе и HTTP. С ее помощью можно узнать ответ сервера, что позволяет определить, доступен ли запрашиваемый сайт в данный момент. Эта библиотека доступна практически на всех хостинг-площадках. Документацию по функциям и возможностям библиотеки cURL в PHP можно посмотреть тут: www.php.net/manual/ru/book.curl.php , php.net/curl .

    function check_domain_availible ( $domain )
    <
    if ( ! filter_var ( $domain , FILTER_VAL >) )
    return false ;

    $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 ) ;

    Читайте также  При отправке произошла ошибка код 3

    $response = curl_exec ( $curlInit ) ;
    curl_close ( $curlInit ) ;

    if ( $response )
    return true ;
    return false ;
    >

    $url = ‘http://obovsem.org.ua/’ ;
    if ( check_domain_availible ( $url ) )
    echo ‘Сайт ‘ . $url . ‘ доступен’ ;
    else
    echo ‘Сайт ‘ . $url . ‘ не доступен’ ;

    Функция check_domain_availible ( ) пытается получить ответ от сервера, и если он есть, сайт считается доступным. Обратите внимание, что ответ от сервера может быть с каким угодно статусом HTTP: HTTP 301 (редирект на другую страницу), HTTP 404 (страница не найдена) и т.д. Детальную инфформацию о статусах HTTP можно посмотреть тут: " Status code definitions (w3.org eng) ", " Ответы Google для Web-мастеров " и " коды статуса http (поиск в Google) ".

    Функция filter_var ( ) появилась в PHP 5 и служит заменой некоторых регулярных выражений, часто используемых в скриптах: проверка на соответствие введенных данных URL, E-mail и др. Документация по этой функции тут: описание функции filter_var() , фильтры функции filter_var() .

    Чтобы узнать только HTTP статус ответа сервера, и уже на его основании делать выводы о доступности или не доступности сайта, можно использовать скрипт, приведенный ниже:

    function check_http_status ( $url )
    <
    $user_agent = ‘Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)’ ;
    $ch = curl_init ( ) ;
    curl_setopt ( $ch , CURLOPT_URL , $url ) ;
    curl_setopt ( $ch , CURLOPT_USERAGENT , $user_agent ) ;
    curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 ) ;
    curl_setopt ( $ch , CURLOPT_VERBOSE , false ) ;
    curl_setopt ( $ch , CURLOPT_TIMEOUT , 10 ) ;
    curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER , false ) ;
    curl_setopt ( $ch , CURLOPT_SSLVERSION , 3 ) ;
    curl_setopt ( $ch , CURLOPT_SSL_VERIFYHOST , false ) ;
    $page = curl_exec ( $ch ) ;

    $err = curl_error ( $ch ) ;
    if ( ! empty ( $err ) )
    return $err ;

    $httpcode = curl_getinfo ( $ch , CURLINFO_HTTP_CODE ) ;
    curl_close ( $ch ) ;
    return $httpcode ;
    >

    Всем привет.
    Есть скрипт который проверяет доступность сервера.

    Как сделать так, что бы проверялся не один сайт, а несколько?
    Просто копировать этот код, дважды не очень удобно.

    • Вопрос задан более трёх лет назад
    • 1716 просмотров
    Читайте также  Программа для портов интернета

    В функцию передавай несколько доменов.
    К примеру есть массив из 2 сайтов array(‘site1′,’site2’);
    Просто в цикле передавай значения массива

    И сам результат

    Ссылка на основную публикацию
    Adblock
    detector