冰古blog » PHP+MySql » 2009 » 10 » 13 » 如何用PHP得到缩短链接的原始链接

如何用PHP得到缩短链接的原始链接

树大招风,bit.ly和j.mp还是被河蟹了。当然撇开这个原因,我们有时也是有想得到某个缩短链接的原始链接的要求。

其实用PHP中的get_headers()函数就能轻松地得到原始链接。

<?php
$url = 'http://bit.ly/1vFqAp';

$headers = get_headers($url, 1);

echo '<pre>';

print_r($headers);

echo '</pre>';

get_headers第二个参数如果不为0时,将会以关联下标数组输出,这时我们用$headers[‘Location’]就可以直接得到该缩短链接的原始链接了。(当为0时,输出的结果是数字下标数组,这时我们就不能方便地调用原始链接)输出的结果如下:

Array
(
    [0] => HTTP/1.1 301 Moved
    [Server] => Array
        (
            [0] => nginx/0.7.42
            [1] => Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
        )

    [Date] => Array
        (
            [0] => Tue, 13 Oct 2009 07:38:38 GMT
            [1] => Tue, 13 Oct 2009 07:38:36 GMT
        )

    [Content-Type] => Array
        (
            [0] => text/html; charset=utf-8
            [1] => text/html; charset=UTF-8
        )

    [Connection] => Array
        (
            [0] => close
            [1] => close
        )

    [Location] => http://bingu.net/646/create-web-thumb-use-bluga-easythumb-api/
    [MIME-Version] => 1.0
    [Content-Length] => 324
    [1] => HTTP/1.1 200 OK
    [X-Powered-By] => PHP/5.2.9
    [X-Pingback] => http://bingu.net/xmlrpc.php
)

PHP的内置函数可做的事情很多,在谷歌中搜索“php删除字符串中的html”,可以得到一个别人编写的delete_htm()函数,而事实上PHP中的strip_tags()函数就能完成这个任务,完全不必自己另编一个函数。

8 Responses to “如何用PHP得到缩短链接的原始链接”

  1. 星网 says:

    好主意!我的链接好长的。。。

  2. 花木兰 says:

    还没研究过缩短链接地址 不过短了很好看 😛

  3. wayne says:

    被墙了以后短缩域名服务反而不便了。。。

  4. Betty says:

    挺有用的,不知道js是否有类似的函数

    • 冰古 says:

      js应该没有这样的函数了,不过应该可以编写个bookmarklet,点击后将页面上的bit.ly链接都变成get_headers.php?sl=http://bit.ly/1vFqAp这样形式的链接,点击转换后的链接就可以直接获得原始链接了。

Leave a Reply