【问题标题】:Get img url from enclosure in rss feed从 rss 提要中的附件获取 img url
【发布时间】:2015-01-14 21:32:06
【问题描述】:

我有一个小问题。 我的网站上有以下代码可以从 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 知识不是很好。 有什么办法吗?

谢谢!

【问题讨论】:

标签: php rss


【解决方案1】:

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

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

【讨论】:

  • 好的。知道了。谢谢!
  • 但是该代码到底应该放在哪里呢?我在 $item = array () 之后尝试过,但每篇文章都得到相同的图像。
  • 'img' =&gt; $node-&gt;getElementsByTagName('enclosure')-&gt;item(0)-&gt;getAttribute('url') 放入foreach 循环中,并在您的for 循环中使用$img = $feed[$x]['img']。如果你得到相同的图像,你检查是否是因为 rss 中的 img 总是相同的?我还注意到在描述中还嵌入了一个 标签。
  • 我只是按照你说的做了,而且效果很好。再次感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多