Проверка доступности стороннего сайта для запроса по api

Сниппет называется isSiteAvailible, написал его не я, автора не помню, но говорят штука полезная, чтобы твой сайт работал, даже если чужой, куда ты шлешь запросы, лежит.
<?php
if(!$url){return false;}
// Проверка правильности URL
if(!filter_var($url, FILTER_VALIDATE_URL)){
    return false;
}

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

// Установка параметров запроса
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,1);
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;
Вопрос в том нужно ли это делать и если да, но насколько верен предложенный способ?
Артур
09 апреля 2021, 23:31
modx.pro
487
-2
Поблагодарить автора Отправить деньги

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

Артур
10 апреля 2021, 14:15
0
Это не деловой подход, где конструктивная критика?
    Иван Климчук
    10 апреля 2021, 21:33
    0
    Да тут как бы критиковать особо нечего. Одно предложение и кусок кода.
    И если сайт лежит, то этот снипет все равно будет грузить твой сайт как минимум 10 секунд. Такое делается абсолютно другими методами.
      Артур
      10 апреля 2021, 23:22
      0
      Спасибо за комментарий, но можно намекнуть о каких методах речь? Дело в том, что по запросу «как проверить доступность сервера php» первая страница результатов поиска выдает код аналогичный тому, что я привёл, поэтому буду признателен если укажете направление в котором искать верное решение?
        Роман
        12 апреля 2021, 10:28
        0
        Запрашивай просто заголовок, если 200 отдает, значит работает. Просто нужно асинхронно запрашивать. Примерно, как-то так:
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
        curl_setopt($ch,CURLOPT_NOBODY,false);
        curl_setopt($ch,CURLOPT_HEADER,true);
        $out = curl_exec($ch);
        curl_close($ch);
        
        if (preg_match('/HTTP\/1.0 200 OK/is',$out)) {
        }
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4