有谁知道怎么做?我知道如何将单个Feed显示为一个简单的列表,但它变得更加复杂。我想显示一个列表,但有多个源,每个源都具有 list-style-image 。
示例:
(img1) This is data from rss feed 1
(img2) This is data from rss feed 2
非常感谢你的帮助!
这就是我对单一来源列表的看法。
# INSTANTIATE CURL.
$curl = curl_init();
# CURL SETTINGS.
curl_setopt($curl, CURLOPT_URL, "RSSURL");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0);
# GRAB THE XML FILE.
$xmlTwitter = curl_exec($curl);
curl_close($curl);
# SET UP XML OBJECT.
$xmlObjTwitter = simplexml_load_string( $xmlTwitter );
$tempCounter = 0;
foreach ( $xmlObjTwitter->channel->item as $item )
{
# DISPLAY ONLY 10 ITEMS.
if ( $tempCounter < 11 )
{
echo "<li><a href=\"{$item -> guid}\">{$item -> title}</a></li>
";
}
$tempCounter += 1;
}
编辑1
好的,非常感谢。很有帮助。我试图通过以下方式实现它: 1.将SimplePie安装到PHP文件夹中的站点根目录中。 2.实现给定的代码。 (还没有造型,想先让它发挥作用。)
我的代码目前是:
<?php
require_once('/simplepie.inc');
$feed = new SimplePie();
$feed->set_feed_url(array('rss1', 'rss2'));
$feed->init();
$feed->handle_content_type();
foreach ($feed->get_items(0, 100) as $item) {
$n = array_search($item->get_feed(), $feeds);
echo '<li class="feed'.$n.'">'.$item->get_title().'</li>';
}
?>\
我在我的网站上收到了这个输出:
set_feed_url(阵列( 'http://vimeo.com/user/likes/rss', 'http://vimeo.com/user/videos/rss')); $馈&GT;的init(); $馈&GT; handle_content_type();的foreach ($ feed-&gt; get_items(0,100)as $ item){ $ n = array_search($ item-&gt; get_feed(), $饲料); echo''。$ item-&gt; get_title()。' “; }?&gt; \
我显然做错了什么,但我很难发现它是什么。 再次感谢。
答案 0 :(得分:1)
您似乎遇到两个问题:聚合多个RSS源,然后将它们显示在列表中。
1:使用SimplePie lib - 可能是与RSS相关的最简单和最好的一个。由于文件大小,可能对某人来说有点过分,但无论如何。它还将为您处理按日期排序。 http://simplepie.org/
<?php
$feed = new SimplePie();
$feed->set_feed_url(array('http://rss1', 'http://rss2'));
$feed->init();
$feed->handle_content_type();
foreach($feed->get_items(0, 100) as $item) {
$n = array_search($item->get_feed(), $feeds);
echo '<li class="feed'.$n.'">'.$item->get_title().'</li>';
}
?>
2:akamike说什么(并删除?),但列表样式图像可能很痛苦 - 几乎不可能对齐。更灵活的解决方案是删除它们并使用背景。
CSS:
li.feed1, li.feed2 {
list-style: none;
background-position: left center;
background-repeat: no-repeat;
}
li.feed1 { background-image: url(feed1icon.png); }
li.feed2 { background-image: url(feed2icon.png); }