Heim  >  Artikel  >  php教程  >  PHP 获取短网址跳转后的真实地址的实例

PHP 获取短网址跳转后的真实地址的实例

WBOY
WBOYOriginal
2016-05-27 08:47:141337Durchsuche

你可能所有不知道获取短网址跳转后的真实地址我们可以使用get_headers()函数来实现,下面我一起来看我总结的一些例子.

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

利用get_headers() 函数获取http头,php 自带的get_headers()取得服务器响应一个 HTTP 请求所发送的所有标头, 获取301状态肯定没问题.

例子,代码如下:

$url = 'http://dwz.cn/29uQh7'; 
$headers = get_headers($url, TRUE); 
print_r($headers); 
//输出跳转到的网址 
echo $headers['Location'];

//附: 

Array 
( 
    [0] => HTTP/1.1 302 Moved Temporarily 
    [Location] => http://www.phprm.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 
        ) 
)

好了我们看一个获取短网址跳转之前的网址,代码如下:

$header = get_headers($url, 1);  
if (strpos($header[0], '301') || strpos($header[0], '302')) {
    if (is_array($header['Location'])) {  
        return $header['Location'][count($header['Location'])-1];  
    } else {  
        return $header['Location'];  
    }  
} else {  
    return $url;  
}


本文地址:

转载随意,但请附上文章地址:-)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn