PHP获取短链接跳转后的真实地址和响应头信息的方法


本文向大家介绍PHP获取短链接跳转后的真实地址和响应头信息的方法,包括了PHP获取短链接跳转后的真实地址和响应头信息的方法的使用技巧和注意事项,需要的朋友参考一下

获取到一个短连接,需要将短连接转换成真实的网址,通过查资料,发现 PHP 提供了一个函数 get_headers() ,可以完成这个任务,先把 头部信息获取到,然后再分析跳转地址即可:


$url = 'http://t.cn/h5mwx';

$headers = get_headers($url, TRUE);

print_r($headers);

//输出跳转到的网址 echo $headers['Location'];

附完整数组:


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         ) )

附:get_headers函数官方文档

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头

说明

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

get_headers() 返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。

参数

url:目标 URL。

format:如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。

返回值

返回包含有服务器响应一个 HTTP 请求所发送标头的索引或关联数组,如果失败则返回 FALSE。

使用例子:


<?php

$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1)); ?>


以上例程的输出类似于:

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 )