Проверка доступности стороннего сайта для запроса по 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;
Вопрос в том нужно ли это делать и если да, но насколько верен предложенный способ?
Поблагодарить автора
Отправить деньги
Комментарии: 4
Это не деловой подход, где конструктивная критика?
Да тут как бы критиковать особо нечего. Одно предложение и кусок кода.
И если сайт лежит, то этот снипет все равно будет грузить твой сайт как минимум 10 секунд. Такое делается абсолютно другими методами.
И если сайт лежит, то этот снипет все равно будет грузить твой сайт как минимум 10 секунд. Такое делается абсолютно другими методами.
Спасибо за комментарий, но можно намекнуть о каких методах речь? Дело в том, что по запросу «как проверить доступность сервера php» первая страница результатов поиска выдает код аналогичный тому, что я привёл, поэтому буду признателен если укажете направление в котором искать верное решение?
Запрашивай просто заголовок, если 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)) {
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.