我发现此代码用于在RSS源上显示我的页面上的wordpress帖子。但是它有限制只显示5个帖子。
<?php
$rss = new DOMDocument();
$rss->load('http://wordpress.org/news/feed/');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = 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($feed, $item);
}
$limit = 5;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
echo '<small><em>Posted on '.$date.'</em></small></p>';
echo '<p>'.$description.'</p>';
}
?>
例如,我可以将$ limit增加到“50”,但如果我的帖子少于50,则会显示错误。
我的猜测是删除这些行,但它似乎会阻止脚本运行:
$limit = 5;
for($x=0;$x<$limit;$x++)
答案 0 :(得分:3)
虽然
$limit = count($feed);
可行,也可能导致大量文章被展示。
你可以尝试
$count = count($feed);
$limit = $count > 50 ? 50 : $count;
如果超过
,则会将其限制为50答案 1 :(得分:2)
这应该做。您基本上将其限制为Feed中包含的所有项目。
$limit = count($feed);
我还会将其包裹在if
中,以确保它有项目。
$limit = count($feed);
if ($limit > 0)
{
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
echo '<small><em>Posted on '.$date.'</em></small></p>';
echo '<p>'.$description.'</p>';
}
}
答案 2 :(得分:1)
使用 limit
, feed
的数量
$limit = count($feed);
答案 3 :(得分:1)
您可以使用count()
计算数组中元素的数量,如下所示:
$limit = count($feed); //store number of elements
if ($limit > 0) { //checking if at least one element exists
for($x=0; $x<$limit ;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
echo '<small><em>Posted on '.$date.'</em></small></p>';
echo '<p>'.$description.'</p>';
}
}
希望这有帮助!