2013-07-09 42 views
0

我想在我的magento網站中顯示RSS feed,並且無法顯示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; ?>  
$?> 

我試着使用也$本期特價貨品 - >內容嘗試,但它返回的新聞源的全部內容。所以我的問題是,我如何從內容訪問圖像的源代碼:編碼爲了顯示在我的源?

UPDATE:一些更多的研究後,我試圖使用的preg_match像這樣:的preg_match( '/ < * IMG [^>] * SRC = [「\']([^?」\'])/ I ',$ item-> content,$ matches); echo $ matches [0];我得到了正確的圖像路徑,但我把它放在一個循環內,所以我應該至少有兩個圖像,但我只得到1.爲什麼是這樣?

解決:我已經設法通過將$ matches [0]更改爲$ matches [1]來解決我的問題。我想我正在使用0認爲這是數組匹配的索引。

+0

你一直在StackOverflow足夠長的時間知道你應該把答案放在你的問題的答案框,而不是在你的問題。 http://stackoverflow.com/help – Brad

+0

對不起,我只是現在就開始了。 – user1597438

回答

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; ?> 

希望這可以幫助別人。