2010-08-16 4 views
1

나는 php와 까치를 사용하여 피드 항목에서 이미지를 감지하는 일반적인 방법을 원합니다. 나는 몇몇 웹 사이트가 인클로저 태그 안에 이미지를 넣는다는 것을 안다. 다른 사람은 images[rss]과 같은 것이고 일부는 단순히 설명에 추가한다. RSS 항목에 이미지가 있는지 검색하고 까치가 파싱 한 후 이미지 URL을 추출하는 일반적인 기능이 있습니까?까치 RSS를 사용하여 rss/atom 피드에서 이미지 가져 오기

제 생각에는 reqular expression이 설명에서 추출해야하지만 im은 noob이라고 생각합니다. 가능한 경우 도와주세요.

답변

4

Magpie를 통해 RSS에 이미지를 표시하는 방법을 찾기 위해 시간을 보냈습니다. 결국에는 코드를 검사하여 작동시키는 방법을 찾아야했습니다.

Magpie가 요소에서 이미지를 선택하지 않는 이유는 정보가 속성에있는 빈 태그 인 '둘러보기'태그를 사용하여 지정 되었기 때문입니다.

function feed_start_element($p, $element, &$attrs) { 
    ... 
    if ($el == 'channel') 
    { 
     $this->inchannel = true; 
    } 
    ... 

    // START EDIT - add this elseif condition to the if ($el=xxx) statement. 
    // Checks if element is enclosure tag, and if so store the attribute values 
    elseif ($el == 'enclosure') { 
     if (isset($attrs['url'])) { 
     $this->current_item['enclosure_url'] = $attrs['url']; 
     $this->current_item['enclosure_type'] = $attrs['type']; 
     $this->current_item['enclosure_length'] = $attrs['length']; 
     } 
    } 
    // END EDIT 
    ... 
} 

이미지의 URL은 $ myRSSitem [ 'enclosure_url'에있다 : 그것은 나를 위해 신속하게 작동하도록하는 해킹으로

<enclosure url="http://www.mysite.com/myphoto.jpg" length="14478" type="image/jpeg" /> 

나는 rss_parse.inc에 코드의 다음 줄을 추가 ]이고 크기는 $ myRSSitem [ 'enclosure_length']에 있습니다. 인클로저 태그는 다양한 유형의 미디어를 참조 할 수 있으므로 먼저 $ myRSSitem [ 'enclosure_type']을 확인하여 유형이 실제로 이미지인지 확인하십시오.

아마도 다른 사람이 더 좋은 제안을하고 있으며 다른 비어있는 태그에서 속성을 가져 오기 위해 더 우아하게 처리 할 수 ​​있다고 확신하지만 AV 시한 (마감 기한 압력)이 필요했지만 다른 사람에게 도움이되기를 바랍니다. 어려움!

+0

이 솔루션은 내 자신의 지저분한 상황에서 완벽하게 작동했습니다. 너무 고마워. –

관련 문제