我想从RSS Feed获取图片网址,但我只能获得标题,网址链接和说明。这是供稿链接“http://www.hotkhmer.com/feeds/posts/default?alt=rss”。这是我的代码:
function parse(){
$rss = simplexml_load_file($this->feed);
$rss_split = array();
foreach ($rss->channel->item as $item) {
$title = (string) $item->title; // Title
$link = (string) $item->link; // Url Link
$description = (string) $item->description; //Description
$rss_split[] = '
<div>
<a href="'.$link.'" target="_blank" title="" >'.$title.'</a>
<hr>
</div>
';
}
return $rss_split;
}
答案 0 :(得分:2)
到目前为止,我可以看到Feed中没有图像元素。如果您需要使用description
,然后使用类似php html_entity_decode
类的内容解析图像以获取图像标记,则图像位于DOMDocument
中它的。
标签thumbnail
中还有一张图片。使用它,然后使用url
返回的数组检索element->attributes()
属性。
实际上,您提供的xml很容易缩小......
答案 1 :(得分:0)
以下是获取图片src的代码:
$description = (string) $item->description; //Description
$html = $description;
$doc = new DOMDocument();
@$doc->loadHTML($html);
$tags = $doc->getElementsByTagName('img');
echo $tags[0]->getAttribute('src');
一些额外的事情:
从描述中删除图像:
$description = preg_replace("/<img[^>]+\>/i", "(image) ", $description);
如果使用rss feed来删除iframe:
$description = preg_replace('/<iframe.*?\/iframe>/i','', $description);
使描述字符串简短:
substr($description,0,200); //200 charcters
答案 2 :(得分:-1)
RSS 2.0规范是明确的。 image
元素可用于在渠道级别向Feed添加图片:
指定可与其一起显示的GIF,JPEG或PNG图像 渠道。 More info here