как отобразить только 5 записей? - PullRequest
0 голосов
/ 12 сентября 2011

Что я хочу сделать, это прочитать 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 ]

6 голосов
/ 12 сентября 2011

самый простой способ - остановить цикл после 5 итераций:

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

другой (более красивый) способ - использовать for -lolops вместо foreach:

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

РЕДАКТИРОВАТЬ:
благодаря Джухана, я изменил код, чтобы учесть это.

1 голос
/ 12 сентября 2011

Попробуйте добавить счетчик в цикл foreach с помощью оператора if, чтобы проверить, когда счетчик превысил 5. Если счетчик меньше 5 -> показать сообщение RSS, counter ++. Остальное -> Выходной цикл.

0 голосов
/ 25 сентября 2011

Вы можете использовать плагин подачи jQuery.

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

Каналы будут загружаться в контейнерную подачу.

0 голосов
/ 12 сентября 2011

Почему бы вместо этого не использовать простой цикл 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>";   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...