PHP Method for Obtaining Real Address and Response Header Information after Short Link Jump

  • 2021-07-09 07:35:52
  • OfStack

To obtain a short connection, it is necessary to convert the short connection into a real website address. By looking up the data, it is found that PHP provides a function get_headers (), which can complete this task. First obtain the header information, and then analyze the jump address:


$url = 'http://t.cn/h5mwx';
$headers = get_headers($url, TRUE); print_r($headers); // Output the URL to jump to
echo $headers['Location'];

Attached is a complete array:


Array
(
    [0] => HTTP/1.1 302 Moved Temporarily
    [Location] => http://www.baidu.com
    [Content-Type] => Array
        (
            [0] => text/html;charset=UTF-8
            [1] => text/html;charset=utf-8
        )     [Server] => Array
        (
            [0] => weibo
            [1] => BWS/1.0
        )     [Content-Length] => Array
        (
            [0] => 203
            [1] => 16424
        )     [Date] => Array
        (
            [0] => Thu, 12 Dec 2013 10:42:25 GMT
            [1] => Thu, 12 Dec 2013 10:42:25 GMT
        )     [X-Varnish] => 2893360335
    [Age] => 0
    [Via] => 1.1 varnish
    [Connection] => Array
        (
            [0] => close
            [1] => Close
        )
)

Attachment: Official document of get_headers function

get_headers-Gets all headers sent by the server in response to an HTTP request

Description

array get_headers ( string $url [, int $format = 0 ] )

get_headers () returns an array of headers sent by the server in response to an HTTP request.

Parameter

url: Target URL.

format: If the optional format parameter is set to 1, get_headers () parses the information and sets the key name of the array.

Return value

Returns an index or associative array containing the headers sent by the server in response to 1 HTTP request, or FALSE if it fails.

Use example:


<?php
$url = 'http://www.example.com'; print_r(get_headers($url)); print_r(get_headers($url, 1));
?>

The output of the above routine is 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
)


Related articles: