从 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(' & ', ' & ', $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
将 &
替换为 &
,而是使用 htmlspecialchars
或 htmlentities
,这样更安全,并且还可以替换您不想要的其他字符你的 HTML 喜欢 <
和 >
.
我有个小问题。 我的网站上有以下代码 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(' & ', ' & ', $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
将 &
替换为 &
,而是使用 htmlspecialchars
或 htmlentities
,这样更安全,并且还可以替换您不想要的其他字符你的 HTML 喜欢 <
和 >
.