Как проверить, не работает ли удаленный сервер для обслуживания, даже если может быть перенаправление на страницу обслуживания? - PullRequest
2 голосов
/ 21 марта 2012

У нас есть приложение, которое зависит от удаленного сервиса.Меня попросили внедрить некоторый код, в соответствии с которым, если удаленный веб-сервер не работает (из-за технического обслуживания или сбоев), я отображаю соответствующее сообщение.

Проблема заключается в том, что когда пульт отключен для обслуживания, он обычно перенаправляет на другую страницу.Итак, как мне реализовать реализацию в PHP надежной функции, которая может определить, работает ли конкретный URL-адрес, а не перенаправляется ли на фиктивную страницу.

Спасибо

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Просто проверьте код возврата HTTP. Это возможно с помощью curl, например:

CURLINFO_HTTP_CODE http://de2.php.net/manual/en/function.curl-getinfo.php

<?php
$success = 0;
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// Check if any error occured
if(!curl_errno($ch))
{
 if(curl_getinfo($c, CURLINFO_HTTP_CODE) === 200)
    $success = 1;
}

// close cURL resource, and free up system resources
curl_close($ch);
?>
1 голос
/ 21 марта 2012

Просто проверьте текст ответа . Если ответ содержит какой-либо текст, который присутствует в перенаправленном URL-адресе, то он обязательно находится в режиме обслуживания.

Если удаленный веб-сервер не работает, вы можете это проверить. см https://stackoverflow.com/questions/9144825/php-check-if-a-site-is-down/9145124#9145124

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...