从 rss 提要中的附件中获取 img url

Get img url from enclosure in rss feed

我有个小问题。 我的网站上有以下代码 post 来自 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 文件中获取图像 link,如下所示:

enclosure url="IMG URL" length="" type=""

但我无法让它工作,我尝试了这里找到的一些示例,我的 php 知识不太好。 知道怎么做吗?

谢谢!

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

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