2012-07-10 8 views
0

我正在使用PHP獲取已發佈在http://sports.espn.go.com/espn/rss/news的最新RSS源。所以這裏的想法是,每當http://sports.espn.go.com/espn/rss/news已被添加到我的系統,它會得到最新發布的帖子。在不同的瀏覽器中獲取不同的RSS訂閱源+ PHP

這裏的問題是,當我查看Firefox和Chrome瀏覽器RSS源,結果是這樣的: 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

日最新公佈後請指引我這一個。任何幫助將不勝感激和獎勵!

謝謝! :-)

+0

不知道爲什麼會發生這種情況,但是在做出輸出之前,您是否嘗試對自己的結果進行排序? – Peon 2012-07-10 07:24:59

+0

我真的很想用發佈的日期對結果進行排序,但我的系統中的供稿網址是動態的,只是在這裏我使用http://sports.espn.go.com/espon/rss/news作爲一個例子。 RSS網址有不同的日期格式,這就是爲什麼我不知道如何對它們進行排序。 – PinoyStackOverflower 2012-07-10 07:27:57

+0

把它們放到一個數組中,做一個ksort(或任何適合你需要的最好的)然後做輸出。 – Peon 2012-07-10 07:29:13

回答

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

謝謝!

+0

你去m8,很高興提供幫助。 – Peon 2012-07-10 08:35:36

+0

由於文章日期格式,我收到了不一致的結果。以下是帖子日期格式的示例: 2012年7月10日星期日00:38:59 GMT - 2012年7月10日星期二上午5:05 - 星期一,2012年7月09日20:27:30 ED - 星期二,2012年7月10日02:05:28 -0400 - 2012年7月10日星期二08:00:56 +0000。這裏的問題是,我將如何標準化日期格式,我只是把它帶到一個我不擁有和控制的網站。 :( – PinoyStackOverflower 2012-07-10 08:36:18

+0

我相信你可以用http://php.net/manual/en/function.mktime.php函數改變時間以獲得更好的視圖,這也可以讓你更好地排序它。 – Peon 2012-07-10 08:38:45