我正试图在我的magento网站上显示RSS提要,而且我在显示提要的图像时遇到了困难。通过对提要的研究,我发现图像在一个内容中:编码标记,所以我不能通过使用$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->content,但是它返回了新闻提要的全部内容。因此,我的问题是,如何从内容访问图像的源:编码,以便在我的提要上显示它?
更新:经过更多的研究后,我尝试使用preg_match : preg_match('/<*img^>*src =“?‘?(^”\’)/i‘,$item->content,$matches);echo $matches;我得到了正确的图像路径,但是我已经把它放在一个循环中,所以我应该至少有两个图像,但我只得到1。为什么会这样?
解决:我通过将$matches更改为$matches1来解决我的问题。我想我使用的是0,认为它是数组匹配的索引。
发布于 2013-07-09 02:48:35
为了从内容:编码标记中获取图像源,我使用了正则表达式(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; ?>希望这能帮到别人。
https://stackoverflow.com/questions/17538444
复制相似问题