从RSS源获取图像URL

时间:2014-02-27 15:37:38

标签: php rss feed

我想从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;
}

3 个答案:

答案 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