Cómo analizar encabezados en PHP

Estoy usando un file_get_contents para interactuar con una API para solicitudes GET simples … sin embargo, a veces arroja encabezados que indican que ha habido un error. ¿Cómo puedo obtener estos encabezados y determinar si hay un problema?

Use curl en lugar de file_get_contents.

Ver: http://www.php.net/manual/en/curl.examples-basic.php

Me imagino que si te comunicas con una APLICACIÓN REST, entonces deseas que se devuelva el código de estado Http. En ese caso, podrías hacer algo como esto:

  

Php configurará $ http_response_header después de file_get_contents que contiene los encabezados de respuesta como una matriz de líneas de encabezado / cadenas. No es necesario usar curl si todo lo que quieres son las respuestas de los encabezados (y probablemente no, algunas stacks LAMP aún no tienen cURL).

Doc en $ http_response_header: http://php.net/manual/en/reserved.variables.httpresponseheader.php

Ejemplo:

 file_get_contents('http://stacksocks.com'); foreach ($http_response_header as $header) { echo $header . "
\n"; }

Consejos tomados de la publicación en los comentarios:

1) El valor cambia con cada solicitud realizada.

2) Cuando se usa en métodos / funciones, el valor actual se debe pasar al método / función. El uso de $ http_response_header directamente en el método / función sin que se le asigne un valor por un parámetro de función / método dará como resultado el mensaje de error: Aviso: Variable indefinida: http_response_header

3) Las ubicaciones de longitud y valor de la matriz en la matriz pueden cambiar dependiendo del servidor que se esté consultando y la respuesta recibida. No estoy seguro de si hay alguna posición de valor ‘absoluta’ en la matriz.

4) $ http_response_header SÓLO se rellena con file_get_contents () cuando se usa una URL y NO un archivo local. Esto se establece en la descripción cuando menciona el HTTP_wrapper.

 file_get_contents('http://example.com'); var_dump($http_response_header);