在不同的浏览器+ PHP中获取不同的RSS Feed顺序

时间:2012-07-10 07:18:55

标签: php rss

我正在使用PHP获取已在http://sports.espn.go.com/espn/rss/news发布的最新RSS源。所以这里的想法是,每次http://sports.espn.go.com/espn/rss/news添加到我的系统,它将获得最新发布的帖子。

这里的问题是,当我在Firefox和Chrome中查看RSS Feed时,结果是这样的: enter image description here



但在IE中,结果是这样的:
IE Result

所以基本上结果完全不同,显然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的最新发表帖子

请指导我这个。任何帮助都将受到高度赞赏和奖励!

谢谢! : - )

1 个答案:

答案 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>";
}

?>

结果是这样的: enter image description here

谢谢!

相关问题