<?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文件中获取图像链接,如下所示:
enclosure url =“IMG URL”length =“”type =“”
但是我无法让它工作,我尝试了一些在这里找到的例子,我的PHP知识并不是那么好。 有什么想法怎么做?
谢谢!
答案 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
将&
替换为&
,而是使用htmlspecialchars
或htmlentities
,它会更安全,也会替换您不喜欢的其他字符。想要在您的HTML中使用<
和>
。