2011-09-12 11 views
-2

私は何をしたいのですか?rssfeedを読んでいるので、私はすでにそれをしましたが、私はforeachループとして表示します。今私は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

がカウンターのときにチェックするためにif文を使用して、foreachループでカウンターを入れてみてくださいありがとうカウンターが5 - > RSSポストを表示している場合、カウンター++。 Else - > Exitループ。

+0

代わりに 'for'ループを使用してください。 – chelmertz

+0

私は5回の繰り返しの後でループを壊すほうがいいでしょう。さもなければ、何もしないようにすべてのエントリをループします。 – oezi

+0

ああ、ループを壊しているほうが良いだろう。私はそれを編集します:)。ありがとうございました。 –

6

最も簡単な方法は、5回の反復後にループを停止するには、次のようになります。

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

別の(より美しい)の方法ではなくforeachfor -loopを使用することです:

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

編集:
Juhanaのおかげで、私は考慮するコードを変更しました。

+0

ありがとうございました^^ – user723128

+1

2番目のケースでは、合計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フィードプラグインを使用できます。

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

フィードはコンテナフィードにロードされます。

関連する問題