Проверить http адрес

rafaello

Новичок
Доброго вечера, друзья!
Возможно, и товарищи! Ну или господа! Ну тогда, братья, сестры, граждане, специалисты, знатоки, профессора, академики, студенты, знающие люди, диссертанты, приверженцы мышки и монитора (вроде никого не забыл, а...)!

Есть ассоциативный массив.
Каким образом можно перебрать элементы этого массива, чтобы получить html-форму. И во внутрь это формы вставить вторую форму так, чтобы можно было выполнить sql-запрос в таблицы базы данных, но при этом, чтобы ответы http заголовков соответствовали параметрам, указанным в файле таблицы стилей.
Да, важный момент, необходимо пока массив находится в режиме отладки, сделать его невидимым для поисковых систем, при помощи свойства "display:none".

Ой, мне кажется я не то спросил! Ну конечно!
Я же хотел спросить вот это:

Видеосервер установлен на операционную систему ubuntu, которая выполнена в виде образа виртуальной машины VMVare. Все это дело находится на windows7.
Приложение, в виде сайта, сделанного на joomla, взаимодействует с видеосервером посредством API запросов.
Пока видеосервер включен, все проходит нормально, то есть я выполняю запросы и получаю ответы при помощи функции curl();
Для подстраховки, на тот случай, если видеосервер не будет работать, при помощи какой функции можно проверить адрес http на то, работает он или нет?
Например, вот этот вариант неплохой

PHP:
if(@get_headers('http://192.168.238.128/')){
        echo 'Существует';}else{echo 'Не существует';}
Но, при выполнении этого скрипта он зависает (видеосервер то не работает) как минимум на 15-20 секунд. Правда, потом выдает ответ "Не существует"

Вот этот вариант виснет еще дольше, 25 секунд

PHP:
if( @fopen($url, "r") ) {
        echo "Существует"; }else{echo "Не существует";}
хотя тоже выдает правильный ответ.

Запросов к видеосерверу приходится делать не мало, и если так будет все зависать, то это не работа вообще...

Есть ли какой способ, чтобы быстро (нормально) проверить существование http адреса ?

Спасибо!
 

С.

Продвинутый новичок
Запросов к видеосерверу приходится делать не мало, и если так будет все зависать, то это не работа вообще...
Если сервер мертв, то никакой работы так и так нет. А узнать что сервер завис через 25 секунд не так уж ллохо.
Если сервер жив, то и ответ на мониторинговый запрос поступает без задержки.
Пока что все логично и естественно. Не вижу проблемы.
 

С.

Продвинутый новичок
И да, http это не адрес, а протокол. Существование адреса и отклик по протоколу -- вещи не однозначно связанные.
 

Фанат

oncle terrible
Команда форума
Какой интересный вопрос.
Жаль, я утомился, пока дочитал до середины. Пойду отдохну, а завтра продолжу.
продолжение наверняка интересное
 

rafaello

Новичок
И да, http это не адрес, а протокол. Существование адреса и отклик по протоколу -- вещи не однозначно связанные.
А я вроде не спрашивал про протокол.
Хотя, наверное правильно было бы спросить URL
В любом случае, если предположить, что по каким то причинам видеосервер не работает, то желательно получить не зависание на 20 секунд, а что то типа: "Нет доступа к видеосерверу. Пожалуйста, обратитесь к администратору!"
 

С.

Продвинутый новичок
Через какое время отвечает работающий сервер?
Отсутствие ответа в течение какого времени можно расценивать, что сервер не работает?

Сначала определиться с этими вопросами. Потом задействовать неблокирующие сокеты.
 

WMix

герр M:)ller
Партнер клуба
да правильно, иначе прерву посредине ответа..
 

rafaello

Новичок
Не спорю, это хорошее решение!
Но, все же, если предположить, что видеосервер работает, но возникла какая то другая причина, из-за которой будет превышен лимит времени, указанного в CURLOPT_CONNECTTIMEOUT, то мы получаем ложную информацию о том, работает ли действительно видеосервер!
 

С.

Продвинутый новичок
Нет, полдела не сделано, вернулись на круги своя.
Каков критерий неработоспособности сервера?
 
  • Like
Реакции: WMix

rafaello

Новичок
Каков критерий неработоспособности сервера?
Хотелось бы применить такой метод, который конкретно даст ответ, работает ли данный URL, но без зависания во времени.
 

С.

Продвинутый новичок
Давайте пробежимся по списку воможных методов:

1. сделать запрос на ресурс и (не) получить ответ.
<конец списка>

Осталось сделать выбор.
 

Вурдалак

Продвинутый новичок
Хотелось бы применить такой метод, который конкретно даст ответ, работает ли данный URL, но без зависания во времени.
Такого понятия как «URL не работает» нет.

В текущей постановке задачи решить её не представляется возможным.
 

michelle

Новичок
Хотелось бы применить такой метод, который конкретно даст ответ, работает ли данный URL, но без зависания во времени.
А вы не задумывались о такой вещи - зачем нужно это зависание (по научному - таймаут)?
Медиа сервер может работать, но нет сетевого соединения между сервером мониторинга и вашим медиа сервером и что тогда?
Или медиасервер нагружен - и не сразу отдает вам соединение, а с задержкой?

Это то, что приходит навскидку.
 

Тугай

Новичок
На сколько я понял, зависает браузер. И от этого дискомфорт. Чтоб не зависал нужно построить работу через AJAX.
Пусть будет индикатор на странице, который "пингует" url постоянно через какие-то промежутки времени и отбражает состояние видеосервера.
Тогда по нему пользователю будет видно, есть смысл кликать на остальные элементы управления или нет.
 

rafaello

Новичок
Давайте пробежимся по списку воможных методов:

1. сделать запрос на ресурс и (не) получить ответ.
<конец списка>

Осталось сделать выбор.
Я так понимаю, что здесь самое лучшее, это
PHP:
if(@get_headers('http://192.168.238.128/')){
        echo 'Существует';}else{echo 'Не существует';}
и нечего больше куда то рыпаться.
 
Сверху