[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: HTTP response code
MatrixGod
всем привет!

кто может подсказать как получить "HTTP response code" удаленной страницы?

использую сторонний API. обращаюсь к нему с помощью file_get_contents.

этот API в случае ошибки меняет хттп ответ с 200 на что-то еще, в зависимости от ошибки.

хочу проверить что ответ вернулся корректный прежде чем начну обработку.

как?

всем спасибо!
MatrixGod
есть еще варианты?
Winston
Цитата (MatrixGod @ 22.06.2013 - 19:13)
есть еще варианты?

Чем get_headers не устраивает? Можно еще CURL'ом сделать запрос с опцией CURLOPT_HEADER а потом регулряками например, получить статус... Но не вижу смысла в этом...
MatrixGod
Winston,
в принципе устраивает.
но оно возвращает "HTTP/1.1 200 OK".
а мне бы хотелось вернуть сам код.

почему? - потому что от метода запроса или от версии хттп протокола этот стринг может меняться.

а я хочу чтоб универсально. сделал и забыл.
Invis1ble
Цитата
потому что от метода запроса или от версии хттп протокола этот стринг может меняться.

а что мешает вычленить из "стринг"'а трехзначное число? можешь конечно нагородить огород с курлом, и получить код с помощью curl_getinfo

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

MatrixGod
Invis1ble,
ну можно конечно так:
<?php
function
get_http_response_code($theURL) {
$headers = get_headers($theURL);
return substr($headers[0], 9, 3);
}
?>


опять же, вопрос всегда ли код будет на одном и том же месте.
писать слишком замудренные функции которые это делают на 100% тупо в лом.
думал мож че нить готовое есть.
Winston
preg_match('/(\d{3})/', $headers[0], $code);
echo $code[1];
MatrixGod
а верно ли то что существует такая интересная переменная $http_response_header которая автозаполняется как только мы дергаем хттп, например с помощью file_get_contents?

если да, то это как раз то что я искал.
Nikitian
Курлом дёргаете url, код ответа забираете из curl_getinfo():

$ch = curl_init('http://ya.ru');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$ret = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
var_dump($code);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.