从rss feed中的enclosure获取img url

时间:2015-01-14 13:06:12

标签: php rss

我有点问题。 我在我的网站上有以下代码从rss文件发布一些新闻:

<?php
$rss = new DOMDocument();
$rss->load('http://rt.com/rss/');
$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 = 3;
for($x=0;$x<$limit;$x++) {
    $title = str_replace(' & ', ' &amp; ', $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>';
}?>

我还希望从rss文件中获取图像链接,如下所示:

  

enclosure url =“IMG URL”length =“”type =“”

但是我无法让它工作,我尝试了一些在这里找到的例子,我的PHP知识并不是那么好。 有什么想法怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试查看http://php.net/manual/en/domelement.getattribute.php,了解如何从DOMElement中获取属性。在这种情况下,您可以使用$node->getElementsByTagName('enclosure')->item(0)->getAttribute('url')来获取图片网址。你也可以尝试使用SimpleXMLElement(参见PHP文档),它比DOMDocument更容易使用(但是作为权衡也有较少的功能)。

其他一些指针,如果您只是将一个元素附加到数组,而不是使用array_push,则使用语法$array[] = $element$array[]是一种语言结构,比array_push这样的内部函数更有效。另外,不是使用str_replace&替换为&amp;,而是使用htmlspecialcharshtmlentities,它会更安全,也会替换您不喜欢的其他字符。想要在您的HTML中使用<>