1

有什么方法可以获取另一个(缩短的)URL 指向的 URL?
例如,我将http://www.stackoverflow.com缩短为这个 URL:http ://tinyurl.com/5b2su2

我需要一个 PHP 函数,例如:

getTrueURL($shortened_url)
{
 // ?
}

那应该'http://stackoverflow.com'getTrueURL('http://tinyurl.com/5b2su2')被调用时返回。我怎样才能做到这一点?

PS: 如果在服务器端不可能,我也可以使用 JavaScript 解决方案。

4

2 回答 2

2

我想,你需要这个:

<?php
function getTrueURL($url)
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $data = curl_getinfo($ch);
    return $data["url"];
}

echo getTrueURL("http://tinyurl.com/5b2su2");
?>
于 2013-08-17T11:53:39.177 回答
0
<?php



function tinyurl_reverse($szAddress)
{
    $szAddress = explode('.com/', $szAddress);
    $szAddress = 'http://preview.tinyurl.com/'.$szAddress[1];
    $szDocument = file_get_contents($szAddress);
    preg_match('~redirecturl" href="(.*)">~i', $szDocument, $aMatches);

    if(isset($aMatches[1]))
    {
        return $aMatches[1];
    }

    return null;
}

echo tinyurl_reverse('http://tinyurl.com/5b2su2');
?>
于 2013-08-17T11:54:07.287 回答