Как получить заголовки HTTP-ответа после запроса POST в PHP?

Я хочу знать, можно ли читать / анализировать заголовок ответа HTTP после запроса POST на PHP без использования cURL ..

У меня есть PHP 5 в IIS7. Код, который я использую для POST:

 $ URL = "http://www.google.com/accounts/ClientLogin";
 $ postdata = http_build_query (
     массив (
         'accountType' => 'GOOGLE',
         'Email' => 'xxxxx@gmail.com',
         'Passwd' => 'xxxxxx',
         'service' => 'fusiontables',
         'source' => 'fusiontables query'
     )
 );
 $ opts = array ('http' =>
     массив (
         'header' => 'Content-type: application / x-www-form-urlencoded',
         'method' => 'POST',
         'content' => $ postdata
     )
 );
 $ context = stream_context_create ($ opts);
 $ result = file_get_contents ($ url, false, $ context); 

Выше, я делаю простую аутентификацию ClientLogin для google, и я хочу получить токен Auth, который возвращается в заголовке. Echo-ing $ result дает только содержимое тела, а не заголовки, содержащие данные маркера auth.

    Функция get_headers () может быть той, которую вы ищете.

    http://php.net/manual/en/function.get-headers.php

    Используйте ignore_errors контекста ignore_errors ( документация ):

     $opts = array('http' => array( 'header' => 'Content-type: application/x-www-form-urlencoded', 'method' => 'POST', 'content' => $postdata, 'ignore_errors' => true, ) ); 

    Кроме того, возможно, используйте fopen а не file_get_contents . Затем вы можете вызвать stream_get_meta_data($fp) чтобы получить заголовки, см. Пример # 2 по приведенной выше ссылке.