2010-03-06 114 views
0

我试图设置一个由3个不同RSS提要中的图片组成的3个栏目。第一个Feed来自WordPress博客,第二个来自Etsy商店,第三个来自Flickr提要。使用php和simplexml从rss feed抓取图片网址

我想要做的是抓住从每个饲料的前3个项目的图像的链接。

相关信息:

  • WordPress的进料所说的链接是在说明书,其被格式化为CDATA。
  • Etsy提要将图片链接作为描述中的第一项(例如&lt;img src=&quot;http://ny-image2.etsy.com/il_155x125.126568958.jpg&quot; /&gt;),但也会将其放在<g:image_link>标记中。
  • Flickr供稿在说明中包含链接,但它位于用户个人资料的链接和相片页面的链接之后。还有<media:content url="http://farm5.static.flickr.com/4016/4377189674_d6f3aafa81_m.jpg" type="image/jpeg" height="159" width="240"/>

我已经阅读了php和simplexml的基础知识,但看起来我想要做的事情对我来说太复杂了,无法自行解决。我宁愿有一个单独的functions.php文件,所以我只需要在网页上调用该函数。

ETA:

我已经得到了Etsy的饲料中使用的图像

<?php
function getEtsyFeed($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'><img src=" . $entry->children('g', true)->image_link . " /></a>
</li>";
}
echo "</ul>";
}
?>

,并从Flickr的饲料图像拽拽使用

<?php
function getFlickrFeed($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'><img src=" . $entry->children('media', true)->thumbnail->attributes()->url . " /></a>
</li>";
}
echo "</ul>";
}
?>

我仍然不确定如何处理博客提要,或者如何只显示前3张图片而不破坏我确实有的代码。

回答