从新闻网站的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吗?
答案 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;
}