2011-08-29 9 views
1

다른 사이트의 RSS 피드를 표시하고 싶은 로컬 인트라넷 사이트가 있습니다. 현재 Concrete5 CMS에 내장되어 있으며 RSS 디스플레이 플레이어 플러그인을 사용하여 피드를 표시하고 있습니다. 플러그인은 SimplePie을 사용하여 피드를 구문 분석합니다. 기본적으로 플러그인은 전체 RSS 내용을 표시합니다. 나는 플러그인 (SimplePie)을 조정하여 각 게시물/항목에 링크, 날짜 및 첫 번째 이미지가있는 제목 만 표시했습니다.RSS 피드의 광고 제거

그것은 잘 작동
function getFirstImage($text) { 
    $text = html_entity_decode($text, ENT_QUOTES, 'UTF-8'); 
$pattern = "/<img[^>]+\>/i"; 
preg_match($pattern, $text, $matches); 
    $text = $matches[0]; 
return $text; 
} 
function scrapeImage($text) { 

    $pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/'; 
    preg_match($pattern, $text, $link); 
$link = $link[1]; 
$link = urldecode($link); 
return $link; 
} 

, 문제가 피드 중 일부는 때로는 실제 포스트 앞에 배치되어 그 안에 광고를 가지고있다 : 나는 첫 번째 이미지의 소스를 얻기 위해에 $item->get_content() 전달이 기능 발견 따라서이 함수는 광고 URL을 반환합니다. 분명히 이러한 RSS 광고는 RSS 리더를 사용하는 사람들을 대상으로하지만 사이트에 표시하기 위해 매우 귀찮습니다.

<img> 이외의 정확한 태그를 지정하려고 시도하면 preg_match() 내에 있습니다. 태그를 찍은 특정 피드에만 작동한다고 생각합니다. 예를 들어 preg_match() 태그를 사용하여 <p> 태그 내부의 이미지 만 찾으려고하면

실제 게시물의 첫 번째 이미지는 원하는 피드마다 코드를 변경하지 않고 어떻게 얻을 수 있습니까? 표시 하시겠습니까?

+1

광고를 제거하여 피드를 생성하는 웹 사이트의 조건을 위반했을 수 있습니다. –

+0

인트라넷 사이트이므로 공개되지 않습니다. My Yahoo 나 iGoogle과 같은 맞춤 시작 페이지와 다소 비슷합니다. 나는 그 사이트 중 하나에 피드를 추가 할 때 광고를 본 것을 기억하지 못한다. 그러나 다시 한 번 사용하지 않았다. 게다가 큰 회색 영역이있는 것 같습니다. 한 손으로 왜 내 사이트와 내 콘텐츠 (공개 된 경우)를 통해 수익을 창출 할 수 있어야합니까? 다른 한편으로는, 나는 그들의 내용을 사용하고있다. 그리고 나는 나의 사이트에서 화폐로 돈을 벌면 나는 그들의 내용으로 돈을 벌고있다. – biggles

+1

* 인트라넷 사이트이므로 일반인에게 표시되지 않습니다. * - 사용자가 잡힐 확률이 적어 지거나 올바르지 않습니다. – Quentin

답변

2

귀하의 상황에 따라 작동하는지 잘 모르겠지만 보통 광고 이미지는 일반 콘텐츠가 아닌 다른 도메인 또는 하위 도메인에서 가져옵니다. URL의 도메인 또는 하위 도메인을 기반으로하는 이미지를 필터링하여 rss 피드의 도메인 또는 하위 도메인과 비교할 수 있습니다.

+0

흠, 좋은 생각입니다. 나는 그것을 시도 할 것이다. – biggles

+0

시도해 본 적이 있습니까? –

+0

시도해 보았지만 PHP가 제대로 작동하지 않는 것 같았습니다. 나는 Yahoo! 파이프를 사용하여 특정 키워드가있는 도메인에 대한 링크로 필터링할지 여부는 알 수 있지만 유용하지는 않습니다. 슬픈 부분은 첫 번째 이미지로 광고 이미지를 표시하지 않지만 '광고'라는 이미지가있는 작은 면책 조항이 대신 이미지를 표시한다는 것입니다. : / – biggles

관련 문제