2013-07-09 2 views
0

Magento 웹 사이트에 RSS 피드를 표시하려고하는데 피드의 이미지를 표시하는 데 어려움이 있습니다. 피드를 연구하면서 이미지가 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를 사용하여 시도했지만 또한 뉴스 피드의 전체 콘텐츠를 반환합니다. 그래서 내 질문은, 콘텐츠에서 이미지의 소스에 액세스하려면 어떻게해야합니까? 내 피드에 표시하기 위해 인코딩 된 것입니까?

UPDATE : 좀 더 연구 한 결과, I는 다음처럼 preg_match를 사용하여 시도 :는 preg_match를 ('/ < * IMG의 [^> * SRC = [ "\'([^?"\ ']가)/I ', $ item-> content, $ matches); echo $ matches [0]; 나는 올바른 이미지 경로를 얻고 있지만 루프 내부에 배치 했으므로 각 이미지에 최소한 2 장이 있어야하지만 1 점만 얻는 것입니다. 이유가 무엇입니까?

해결 : 나는 $ matches [0]을 $ matches [1] (으)로 변경하여 문제를 해결할 수있었습니다. 나는 그것이 배열 일치의 색인이라고 생각 0을 사용하는 것 같아요.

+0

StackOverflow를 사용하여 질문에 답하지 말고 대답을 입력해야합니다. http://stackoverflow.com/help – Brad

+0

죄송합니다. 지금 막 그것에 도착했습니다. – user1597438

답변

0

콘텐츠 : 인코딩 된 태그에서 이미지 소스를 가져 오려면 정규 표현식 (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; ?> 

희망이 있으면 다른 사람에게 도움이됩니다.

관련 문제