0

我正在使用 PHP在http://sports.espn.go.com/espn/rss/news上获得最新的 RSS 提要。所以这里的想法是每次http://sports.espn.go.com/espn/rss/news被添加到我的系统中,它都会得到最新发布的帖子。

这里的问题是,当我在 Firefox 和 Chrome 中查看 RSS Feed 时,结果是这样的: 在此处输入图像描述



但是在 IE 中,结果是这样的:
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的最新发布帖子

请指导我这个。任何帮助将不胜感激和奖励!

谢谢!:-)

4

1 回答 1

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

?>

结果是这样的: 在此处输入图像描述

谢谢!

于 2012-07-10T08:25:32.640 回答