从内容中获取图像:编码标签

时间:2013-07-09 01:15:55

标签: php rss

我正在尝试在我的magento网站上显示RSS提要,但我很难显示提要的图像。研究这个Feed,我看到图片在内容中:编码标签,所以我不能通过使用$ item-> image之类的东西直接访问它。这是我目前的代码:

<?php $channel = new Zend_Feed_Rss('newsfeedurl'); ?>
<?php foreach ($channel as $item): ?>
    <?php if($i<2) { ?>
        <img src="<?php echo $item->image; ?>" title="<?php echo $item->title; ?>" height="63" width="95" />
        <?php echo "image:".$item->content; ?>
    <?php } else {} ?>
    <?php $i++; ?>
<?php endforeach; ?>    
$?>

我尝试过尝试使用$ item-&gt;内容,但这会返回新闻源的全部内容。所以我的问题是,如何从内容中访问图像的来源:编码以便在我的Feed中显示它?

更新:经过一些研究后,我尝试使用preg_match,如下所示:preg_match('/&lt; * img [^&gt;] * src = [“\']?([^”\'] < / em>)/ i',$ item-&gt; content,$ matches); echo $ matches [0];我得到了正确的图像路径,但我把它放在一个循环中,所以每个我应该至少有2个图像,但我只得到1.为什么会这样?

解决:我已经设法通过将$ matches [0]更改为$ matches [1]来解决我的问题。我想我用0认为它是数组匹配的索引。

1 个答案:

答案 0 :(得分:0)

为了从content:encoded标签获取图像源,我使用了正则表达式(preg_match)。以下是我当前代码的外观:

<?php $channel = new Zend_Feed_Rss('newsfeedurl'); ?>
<?php foreach ($channel as $item): ?>
    <?php preg_match('/<*img[^>]*src *= *["\']?([^"\']*)/i', $item->content, $matches); ?>
    <?php if($i<2) { ?>
        <img src="<?php echo $matches[1]; ?>" title="<?php echo $item->title; ?>" height="63" width="95" /></a></div>
    <?php } else {} ?>
    <?php $i++; ?>
<?php endforeach; ?>

希望这有助于其他人。