Как проверить доступность сайта (ping) с помощью curl на языке php?

3

Добрый день.

64 урок, 4 задание

Задание: Познакомьтесь с библиотекой CURL и напишите скрипт, который будет проверять доступность сайтов. 

Потратил несколько часов на изучение этой CURL, но так и не понял, как сделать. Подскажите, кто знает.

php
curl

2 ответов

4

Здравствуйте, Александр

Задание CURL в PHP (базовая часть, без помещения в массив хостов для проверки) может быть таким:

<?php 

function pingCheck($url) {
    $agent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0";

    // Инициализация CURL
    $ch = curl_init();

    // Установка URL
    curl_setopt($ch, CURLOPT_URL, $url);

    // Указываю USERAGENT браузера
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);

    // Header
    curl_setopt($ch, CURLOPT_NOBODY, true);

    // Редирект
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    // Возврат строки
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // Отключение из вывода отладочной информации
    curl_setopt($ch, CURLOPT_VERBOSE, false);

    // Устанавливаю максимальное количество секунд работы
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);

    // Выполнение
    curl_exec($ch);

    // Получаю код HTTP ответа
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    curl_close($ch);


    // Если ответ от сервера > 200 - тогда сайт доступен
    if ($httpcode >= 200 && $httpcode < 300)
        return true;
    else
        return false;
}


if (pingCheck("https://fructcode.com"))
    echo "Сайт работает нормально";
else
    echo "Сайт упал";
exit;
3

Спасибо.

Sign up or Log in to write an answer