2011-09-12 111 views
-2

我想要做的是讀rssfeed,所以我已經做到了,但是我顯示爲foreach循環,所以我如何才能顯示5條記錄?現在我得到了超過10條記錄,但我只需要5條記錄,反正php,javascript或jquery只能顯示5條記錄?如何只顯示5條記錄?

這裏是我的代碼讀取RSS文件:

function getrssFeed($feed_url) { 

$content = file_get_contents($feed_url);  
$x = new SimpleXmlElement($content); 
echo "<ul>"; 

foreach($x->channel->item as $entry) {  
    echo "<li><a href = '$entry->link' title='$entry->title'><h3>" . $entry->title . "</h3></a>" . $entry->pubDate . "<br /><br />" . strip_tags($entry->description) . "</li>"; 
} 
echo "</ul>"; } 

getrssFeed("http://thestar.com.my.feedsportal.com/c/33048/f/534555/index.rss");

謝謝

回答

1

嘗試把計數器在foreach循環使用if語句來檢查當計數器超過5.如果計數器低於5 - >顯示RSS發佈,counter ++。否則 - >退出循環。

+0

或者使用'for'-loop代替。 – chelmertz

+0

我寧願在5次迭代後打破循環,否則你會循環每個條目> 5只是爲了什麼都不做 - 這是毫無意義的。 – oezi

+0

啊,是的,打破循環會更好。我會編輯它:)。謝謝。 –

6

最簡單的方法是經過5次迭代,停止你的循環:

$i = 0; 
foreach($x->channel->item as $entry) {  
    // do something 
    $i++; 
    if($i==5){ 
    break; 
    } 
} 

另一個(更漂亮)的方式是使用的for -loop代替foreach

for($i=0; $i<=min(5, count($x->channel->item)); $i++) { 
    $entry = $x->channel->item[$i]; 
    // do something 
} 

編輯:
感謝Juhana,我改變了代碼,以考慮到這一點。

+0

非常感謝你^^ – user723128

+1

在第二種情況下,你必須考慮到總數可能少於5件。 – JJJ

+0

你的回答也拯救了我的一天。 – DrinkJavaCodeJava

0

爲什麼不使用簡單的for循環代替?

for($i = 0, $i <= 5, $i++) {  
    echo "<li><a href = '$x->channel->item[$i]->link' title='$x->channel->item[$i]->title'><h3>" . $x->channel->item[$i]->title . "  </h3></a>" . $x->channel->item[$i]->pubDate . "<br /><br />" . strip_tags$x->channel->item[$i]->description) . "</li>"; 
} 
0

您可以使用jQuery feed插件。

$('div.feed').Feed({ 
    count:5; 
    }); 
    <div class="feed" link="http://thestar.com.my.feedsportal.com/c/33048/f/534555/index.rss" ></div> 

飼料將被加載到容器飼料。