如何从URL中找出实际的URL,重定向到另一个URL

时间:2014-11-17 19:32:31

标签: php rss

从新闻网站的RSS源中,我得到了一篇发表的文章列表。由于本网站使用RSS的feedburner,每篇文章都有另一个URL重定向到文章的实际URL。我需要获取实际的URL并使用此URL我将获得本文的总FB份额和推文。

示例RSS Feed:http://feeds.hindustantimes.com/HT-HomePage-TopStories。 此Feed有一篇文章 - http://feeds.hindustantimes.com/~r/HT-HomePage-TopStories/~3/Go3sAI0Bv94/story01.htm,可重定向到实际网址 - http://www.hindustantimes.com/india-news/mumbai/complaint-against-fake-twitter-accnts-of-party-chief-s-kids/article1-1287174.aspx

PHP有什么办法可以获得实际的URL吗?

1 个答案:

答案 0 :(得分:0)

您可以使用get_headers或curl并设置标志CURLOPT_FOLLOWLOCATION以获取重定向。以下代码段使用get_headers。

function get_redirected_url($url)
{
    $redirected_url = false;

    // First check response headers
    $headers = get_headers($url);

    // Test for 301 or 302
    if(preg_match('/^HTTP\/\d\.\d\s+(301|302)/',$headers[0]))
    {
        foreach($headers as $value)
        {
            if(substr(strtolower($value), 0, 9) == "location:")
            {
                $redirected_url = trim(substr($value, 9, strlen($value)));
            }
        }
    }

    return ($redirected_url) ? $redirected_url : $url;
}