如何只显示5条记录?

时间:2011-09-12 08:13:15

标签: php javascript jquery rss

我想要做的是阅读rssfeed,所以我已经做了,但我显示为foreach循环,那么我怎么才能只显示5条记录?现在我得到了10多条记录,但我只需要前5条记录,不管怎么说php,javascript或jquery只让它显示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");

谢谢

4 个答案:

答案 0 :(得分:6)

最简单的方法是在5次迭代后停止循环:

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

另一种(更漂亮)方式是使用for - 循环而不是foreach

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

编辑:
感谢Juhana,我更改了代码以考虑到这一点。

答案 1 :(得分:1)

尝试使用if语句在foreach循环中放置一个计数器,以检查计数器何时结束。如果计数器低于5 - >显示RSS帖子,计数器++。否则 - &gt;退出循环。

答案 2 :(得分: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>";   
}

答案 3 :(得分:0)

您可以使用jQuery feed Plugin。

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

Feed会加载到容器Feed中。