使用php和simplexml从rss feed中的描述中获取图像URL

时间:2010-03-06 00:43:12

标签: php image rss simplexml

我正在尝试设置一个由3个不同RSS源中的图像组成的php页面,分为3列。第一个Feed来自Wordpress博客,第二个来自Etsy商店,第三个来自Flickr Feed。

我想要做的是从每个Feed中的前3个项目中获取图像的链接。

相关信息:

  • Wordpress Feed将链接放在说明中,格式为CDATA。
  • Etsy Feed将图片链接作为说明中的第一项(例如&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 Feed的图像
  

<?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 Feed中的图像
  

<?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>";
}
?>

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

1 个答案:

答案 0 :(得分:0)

你应该试试MagPie。

  

http://magpierss.sourceforge.net/