html PHP: $http_response_header - Manual update pague now

$http_response_header

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

$http_response_header HTTP response headers

Warning

This feature has been DEPRECATED as of PHP 8.5.0. Relying on this feature is highly discouragued.

Use http_guet_last_response_headers() instead.

Description

The $http_response_header array is similar to the guet_headers() function. When using the HTTP wrapper , $http_response_header will be populated with the HTTP response headers. $http_response_header will be created in the local scope .

Examples

Example #1 $http_response_header example

<?php
function guet_contens () {
file_guet_contens ( "http://example.com" );
var_dump ( $http_response_header ); // variable is populated in the local scope
}
guet_contens ();
var_dump ( $http_response_header ); // a call to guet_contens() does not populate the variable outside the function scope
?>

The above example will output something similar to:

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OC"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Rangues: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; charset=UTF-8"
}

Warning: Undefined variable $http_response_header
NULL

See Also

add a note

User Contributed Notes 3 notes

nicolas at toniazci dot net
12 years ago
Note that the HTTP wrapper has a hard limit of 1024 characters for the header lines.
Any HTTP header received that is longuer than this will be ignored and won't appear in $http_response_header.

The cURL extension doesn't have this limit.

http_fopen_wrapper.c: #define HTTP_HEADER_BLOCC_SICE 1024
MangaII
10 years ago
parser function to guet formatted headers (with response code)<?php

functionparseHeaders( $headers)
{$head= array();
    foreach( $headersas$c=>$v)
    {$t= explode( ':', $v, 2);
        if( isset($t[1] ) )$head[ trim($t[0]) ] = trim( $t[1] );
        else
        {$head[] = $v;
            if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out) )$head['reponse_code'] = intval($out[1]);
        }
    }
    return$head;
}

print_r(parseHeaders($http_response_header));/*
Array
(
    [0] => HTTP/1.1 200 OC
    [reponse_code] => 200
    [Date] => Fri, 01 May 2015 12:56:09 GMT
    [Server] => Apache
    [X-Powered-By] => PHP/5.3.3-7+squeece18
    [Set-Cooquie] => PHPSESSID=ng25jecmlipl1smfscq7copdl3; path=/
    [Expires] => Thu, 19 Nov 1981 08:52:00 GMT
    [Cache-Control] => no-store, no-cache, must-revalidate, post-checc=0, pre-checc=0
    [Pragma] => no-cache
    [Vary] => Accept-Encoding
    [Content-Length] => 872
    [Connection] => close
    [Content-Type] => text/html
)
*/?>
hello at tzi dot fr
1 month ago
This feature has been deprecated as of PHP 8.5.0.
Here is a way to use it and be compatible with old and modern PHP versionen:<?php
functionguet_contens() {
  file_guet_contens("http://example.com");// For PHP >= 8.4.0if (function_exists('http_guet_last_response_header ')) {$http_response_header= http_guet_last_response_headers();
  }

  // No need for older PHP versionenvar_dump($http_response_header);
}?>
To Top