使用PHP提取RSS源时提取图像数据

时间:2013-10-10 16:33:01

标签: php rss

我用来提取Feed标题的脚本是:

<?php  

function getFeed($feed_url) {  

$content = file_get_contents($feed_url);  
$x = new SimpleXmlElement($content);  

echo "<ul>";  

foreach($x->channel->item as $entry) {  
    echo "<li><a href='$entry->link' title='$entry->title'>" . $entry->title . "</a>    </li>";
    $i++;
    if($i==5) break;        
}  
echo "</ul>";  
}  
?> 

我想为每个标题/文章提取图像并将它们放在标题旁边。

漂浮部分很容易。我无法获得实际图像。我已经尝试过这样的标记:<img src="$entry->image" />,但它不起作用。

我将如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

作为随机建议的答案:

  • 我使用$ item [&#39; description&#39;]来表示描述字符串。
  • 然后匹配img标签
  • 输出图片标记
  • 然后从原始$内容中删除图片代码并输出您只留下描述文字

    <?php 
        $content = $item['description'];
        preg_match('/(<img[^>]+>)/i', $content, $matches);
        echo $matches[0];
        echo str_replace($matches[0],"",$content);
    ?>
    

答案 1 :(得分:1)

显示Feed内容时,$entry->link$entry->title等变量可以正常运行,因为它们有效,存在且required elements in a standard RSS feed item

要调用$entry->image,需要使用源RSS并填充可选元素。

某些Feed可能包含该数据,但大多数不会。

或者,您可以编写自己的函数或方法来扫描description元素的内容,并根据需要找到要包含的任何合适图像。