[英]Getting images from content:encoded tag
我試圖在我的magento網站上顯示RSS feed,但我很難顯示該feed的圖像。 通過研究提要,我發現圖像位於content:encoded標記內,因此無法使用$ 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,但這會返回新聞提要的全部內容。 所以我的問題是,如何從content:encoded訪問圖像的源,以便將其顯示在Feed中?
更新:經過更多的研究,我嘗試使用preg_match像這樣:preg_match('/ <* img [^>] * src = [“ \\']?([[^” \\']] )/ i',$ item->內容,$ matches); echo $ matches [0]; 我得到了正確的圖像路徑,但是將其放置在一個循環中,因此每個圖像應該至少有2張圖像,但是我只得到1張。這是為什么?
已解決:通過將$ matches [0]更改為$ matches [1],我設法解決了我的問題。 我猜我在用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; ?>
希望這對其他人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.