Получение кода ответа заголовка - PullRequest
8 голосов
/ 04 августа 2010

Это часть PHP-скрипта, который я собираю. В основном, домен ($ domain1) определяется в форме, и отображается другое сообщение на основе кода ответа от сервера. Тем не менее, у меня есть проблемы с получением его на работу. 3-значный код ответа - все, что меня интересует.

Вот что у меня есть:

function get_http_response_code($domain1) {
    $headers = get_headers($domain1);
    return substr($headers[0], 9, 3);
    foreach ($get_http_response_code as $gethead) { 
        if ($gethead == 200) {
            echo "OKAY!";
        } else {
            echo "Nokay!";
        }
    }
}

Ответы [ 4 ]

22 голосов
/ 04 августа 2010
$domain1 = 'http://google.com';

function get_http_response_code($domain1) {
  $headers = get_headers($domain1);
  return substr($headers[0], 9, 3);
}

$get_http_response_code = get_http_response_code($domain1);

if ( $get_http_response_code == 200 ) {
  echo "OKAY!";
} else {
  echo "Nokay!";
}
5 голосов
/ 03 июня 2013

Если у вас PHP 5.4.0+, вы можете использовать функцию http_response_code () .Пример:

var_dump(http_response_code()); // int(200)
0 голосов
/ 13 февраля 2017

Вы вернулись напрямую, поэтому функция не будет выполнять далее условие foreach, которое вы написали. Всегда лучше поддерживать две функции.

function get_http_response_code($domain1) {
    $headers = get_headers($domain1);
    return substr($headers[0], 9, 3); //**Here you should not return**
    foreach ($get_http_response_code as $gethead) { 
        if ($gethead == 200) {
            echo "OKAY!";
        } else {
            echo "Nokay!";
        }
    }
}
0 голосов
/ 13 августа 2016

Вот мое решение для людей, которым нужно отправлять электронную почту, когда сервер не работает:

$url = 'http://www.example.com';

while(true) {

    $strHeader = get_headers($url)[0];

    $statusCode = substr($strHeader, 9, 3 );

    if($statusCode != 200 ) {
        echo 'Server down.';
        // Send email 
    }
    else {
        echo 'oK';
    }

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