Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不同的浏览器中获取不同的RSS提要顺序+;PHP_Php_Rss - Fatal编程技术网

在不同的浏览器中获取不同的RSS提要顺序+;PHP

在不同的浏览器中获取不同的RSS提要顺序+;PHP,php,rss,Php,Rss,我得到了最新的RSS提要,它是在使用PHP时发布的。因此,这里的想法是,每次我的系统被添加时,它都会得到最新发布的帖子 这里的问题是,当我在Firefox和Chrome中查看RSS提要时,结果如下: 但在IE中,结果如下: 所以基本上结果是完全不同的,很明显IE的结果是正确的(注意帖子标题下面的时间)。但是,在我的代码中,如下所示: header('Content-type: application/xml'); echo file_get_contents( 'http://sports.

我得到了最新的RSS提要,它是在使用PHP时发布的。因此,这里的想法是,每次我的系统被添加时,它都会得到最新发布的帖子

这里的问题是,当我在Firefox和Chrome中查看RSS提要时,结果如下:



但在IE中,结果如下:

所以基本上结果是完全不同的,很明显IE的结果是正确的(注意帖子标题下面的时间)。但是,在我的代码中,如下所示:

header('Content-type: application/xml');
echo file_get_contents( 'http://sports.espn.go.com/espn/rss/news' );
我在Firefox上也得到了同样的结果,这导致我没有得到最新发布的文章

请指导我这一点。任何帮助都将受到极大的感谢和奖励


谢谢!:-)

这是我的解决方案,但由于不同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>";
}

?>

结果如下:


谢谢

不知道为什么会发生这种情况,但是在输出之前您是否尝试过自己对结果进行排序?我真的很想使用发布的日期对结果进行排序,但是我的系统中的提要url是动态的,我只是在这里使用它作为示例。RSS URL有不同的日期格式,这就是为什么我不知道如何对它们进行排序。将它们放入数组中,进行ksort(或任何最适合您需要的操作),然后进行输出。您的意思是,对发布的日期进行ksort?此日期格式“2012年7月10日星期二上午7:27”是否可以排序?这是的日期格式好的,我会试试,我会回来:)好了,m8,很高兴能帮上忙。因为帖子的日期格式,我得到了不一致的结果。以下是发布日期格式的示例:Sun,2012年7月8日00:38:59 GMT-2012年7月10日星期二上午5:05-2012年7月9日星期一20:27:30 ED-Tue,2012年7月10日02:05:28-0400-Tue,2012年7月10日08:00:56+0000。这里的问题是,我将如何标准化日期格式,在这种格式中,我只将其发送到一个我不拥有和控制的网站:(我相信您可以通过函数将时间更改为更好的视图,这也将允许您对其进行更好的排序。不过,我不知道如何做。
$new\u date=date('d-m-Y H:m:I',strotime('2012年7月10日星期二上午7:27');echo$new\u date;