Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
axle_vega
0 / 0 / 1
Регистрация: 15.01.2014
Сообщений: 25
#1

Как получить header недоступного сервера? - PHP

15.05.2018, 11:31. Просмотров 112. Ответов 3
Метки нет (Все метки)

Добрый день!

Ситуация следующая: есть список сайтов, который нужно периодически, так сказать, "прозванивать" и проверять на доступность.
Решил получать данные через get_headers(), затем проверять код ответа, и если код не равен 200, 301 или 302, то бить тревогу.

Вот кусочек:

PHP
1
2
3
4
5
6
7
8
9
  $url = 'https://yandex.ru';
  
  $result = get_headers($url);
  
  if (strpos($result[0], '301') || strpos($result[0], '200') || strpos($result[0], '302')) {
    echo 'Всё ок';
  } else {
    echo 'Всё плохо';
  }
Возвращает "Всё ок".

Но если указать несуществующий или недоступный сайт:

PHP
1
2
3
4
5
6
7
8
9
  $url = 'https://y123123andex.ru';
  
  $result = get_headers($url);
  
  if (strpos($result[0], '301') || strpos($result[0], '200') || strpos($result[0], '302')) {
    echo 'Всё ок';
  } else {
    echo 'Всё плохо';
  }
То получаем сначала ошибку:
PHP warning: get_headers(): php_network_getaddresses: getaddrinfo failed: Name or service not known
PHP warning: get_headers(https://y123123andex.ru): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known


и только потом ответ "Всё плохо"

Так вот вопрос у меня, как убрать эту ошибку?
Так-то она не мешает, если ручками скрипт запускать, но вот при запуске по крону - из-за ошибки ничего дальше не работает.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2018, 11:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как получить header недоступного сервера? (PHP):

output_buffering=Off или нерабочий header(). Как быть?
Назрел вопрос функции перенаправления на страничках от одной на другую,которую...

Прием Header от другого сервера
Всем привет! Столкнулся с такой штукой, совершенно новой для меня: Удаленный...

Как в PHP получить текст из буфера обмена сервера?
На локальной машине нужно получить текст из буфера обмена. Вот допустим на...

Как получить текущий урл страницы без сервера и get - параметров?
Например, для страницы...

Как через php получить почту с сервера? +в письмах могут быть прикрепленные файлы
Как через php получить почту с сервера? +в письмах могут быть прикрепленные...

Warning: Cannot modify header information - headers already sent в header('Location: /index.php');
Warning: Cannot modify header information - headers already sent by (output...

3
Sound84
8 / 8 / 9
Регистрация: 05.03.2018
Сообщений: 49
15.05.2018, 11:58 #2
Лучший ответ Сообщение было отмечено axle_vega как решение

Решение

PHP
1
$result = @get_headers($url);
Вот так.

Добавлено через 6 минут
А в идеале.

PHP
1
2
  $fP = @fsockopen($host, 80, $errno, $errstr, 10); 
  if (!$fP) { echo "down"; }else{echo "ok";}
1
axle_vega
0 / 0 / 1
Регистрация: 15.01.2014
Сообщений: 25
15.05.2018, 12:00  [ТС] #3
О, спасибо!

А можно пояснить, чем второй вариант лучше первого?
0
Sound84
8 / 8 / 9
Регистрация: 05.03.2018
Сообщений: 49
15.05.2018, 12:03 #4
Более рентабельный, можно даже подсчитать пинг до сервера, и при этом установить тайм-аут соединения.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2018, 12:03
Привет! Вот еще темы с решениями:

Ошибка header: cannot modify header information
Ребят, я так понял что тут header просто перекидывает на другую страницу. Можно...

нужно получить IP сервера
Есть сервер на Windows 8.1 Он работает на lighthttpd нужно получить IP...

Не срабатывает header, ошибка "Cannot modify header information - headers already sent by"
Всем привет. Помогите решить проблему. Есть два файла index c формой, через...

Получить курсы валют с сервера центробанка
До вчерашнего всё работало без проблем. Теперь не хочет. Чо надо ему, а?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru