我正在使用PHP获取已在http://sports.espn.go.com/espn/rss/news发布的最新RSS源。所以这里的想法是,每次http://sports.espn.go.com/espn/rss/news添加到我的系统,它将获得最新发布的帖子。
这里的问题是,当我在Firefox和Chrome中查看RSS Feed时,结果是这样的:
但在IE中,结果是这样的:
所以基本上结果完全不同,显然IE结果是正确的(注意帖子标题下面的时间)。但是,在我的代码中看起来像这样:
header('Content-type: application/xml');
echo file_get_contents( 'http://sports.espn.go.com/espn/rss/news' );
我在Firefox中也得到了相同的结果,导致我没有收到http://sports.espn.go.com/espon/rss/news的最新发表帖子
请指导我这个。任何帮助都将受到高度赞赏和奖励!
谢谢! : - )
答案 0 :(得分:0)
这是我的解决方案,但由于不同RSS帖子的日期格式,它给我一个不一致的结果
<?php
$doc = new DOMDocument();
$arrFeeds = array();
$doc->load( "http://sports.espn.go.com/espn/rss/news" );
foreach ( $doc->getElementsByTagName('item') as $node ) {
$itemRSS = array(
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
);
array_push( $arrFeeds, $itemRSS ); #store array for comparing purposes
}
$newArray = array();
foreach( $arrFeeds as $k=>$v ){
$newArray[$v['date']] = $v;
}
ksort($newArray);
$finalArray = array();
foreach( $newArray as $k=>$v ){
$finalArray[] = $v;
}
krsort($finalArray);
ItemDebug($finalArray);
function ItemDebug($value){
echo "<pre>";
print_r( $value );
echo "</pre>";
}
?>
结果是这样的:
谢谢!