get_headers
(PHP 5, PHP 7)
get_headers — Fetches all the headers sent by the server in response to an HTTP request
Description ¶
array get_headers ( string
$url
[, int $format
= 0 [, resource $context
]] )
get_headers() returns an array with the headers sent by the server in response to a HTTP request.
Parameters ¶
url
- The target URL.
format
- If the optional
format
parameter is set to non-zero, get_headers() parses the response and sets the array's keys. context
- A valid context resource created with stream_context_create().
Return Values ¶
Returns an indexed or associative array with the headers, or
FALSE
on failure.Examples ¶
Example #1 get_headers() example
<?php
$url = 'http://www.example.com';
print_r(get_headers($url));
print_r(get_headers($url, 1));?>
The above example will output something similar to:
Array ( [0] => HTTP/1.1 200 OK [1] => Date: Sat, 29 May 2004 12:28:13 GMT [2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT [4] => ETag: "3f80f-1b6-3e1cb03b" [5] => Accept-Ranges: bytes [6] => Content-Length: 438 [7] => Connection: close [8] => Content-Type: text/html ) Array ( [0] => HTTP/1.1 200 OK [Date] => Sat, 29 May 2004 12:28:14 GMT [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux) [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT [ETag] => "3f80f-1b6-3e1cb03b" [Accept-Ranges] => bytes [Content-Length] => 438 [Connection] => close [Content-Type] => text/html )
Example #2 get_headers() using HEAD example
<?php// By default get_headers uses a GET request to fetch the headers. If you
// want to send a HEAD request instead, you can do so using a stream context:stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);$headers = get_headers('http://example.com');?>
*************************************************************************************************************
IF: you only need a single header, instead of all headers, the quickest method is:
<?php
// Replace XXXXXX_XXXX with the name of the header you need in UPPERCASE (and with '-' replaced by '_')
$headerStringValue = $_SERVER['HTTP_XXXXXX_XXXX'];
ELSE IF: you run PHP as an Apache module or, as of PHP 5.4, using FastCGI (simple method):
<?php
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
ELSE: In any other case, you can use (userland implementation):
<?php
function getRequestHeaders() {
$headers = array();
foreach($_SERVER as $key => $value) {
if (substr($key, 0, 5) <> 'HTTP_') {
continue;
}
$header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))));
$headers[$header] = $value;
}
return $headers;
}
$headers = getRequestHeaders();
foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
*********************************************************************************
jkjkl
0 comments:
Post a Comment