강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

PHP로 작동하는 RSS 읽는 함수
작성자 : 13 김영철
등록날짜 : 2009.01.14 22:02
2,079

-phpschool 에서 펌 -

 

 안녕하세요 주선입니다. ^^

팁엔텍에 3번째로 글적습니다.

두근두근... 사실 개인 홈페이지를 제외한 다른 사이트에는 글을 잘 안적는 편이지만..
( 코멘트 달린 겟수 확인 하는 맛이 ... ㅡㅠㅡ)

여튼간에 RSS를 읽고 싶어서 처음에는 pear.php.net 에 있는 라이브러리로 이래저래 삽을 퍼던 결과 .... 되긴하는데 엄청 느린겁니다.

두번째는 AJAX를 써서 만들었는데..... 로컬에서는 빠르게 잘 되지만...

웹에 올리고 충격 먹었습니다. ㅠ_ㅠ) 파일이 실행되는 도메인을 벗어난 곳의 RSS는 읽혀지지가 않는 치명적인.. ( 이해 할만도 합니다.... 쿠키 구어서 거시기 하면 )

그래서 만든것이..

소스가 좀 무식하지만...( 그냥 가져와서 자르는 -_- ) 나름데로 빠른 속도를 자랑합니다.

RSS사이트가 느리다면 잘 모르겠지만요...



무슨 문제가 있을진 모르지만 일단 소스는 공개해봅니다.

소스로 인한 뒷일은 모릅니다. -ㅅ-);

<?
// PHP RSS Reader v0.1
// Code By Jusun at 2007-01-25
// 라이센스 : FREE ... 소스로 인한 뒷일은 책임 못짐...

// RSS 읽어오기
function getRSS($url){
    $fd = fopen ($url, "r");
    while (!feof ($fd)) {
        $buffer .= fgets($fd, 4096);
    }
    fclose ($fd);
    return $buffer;
}

// 내용만 뽑아내기
function parseTag($tag,$value){
    $value =  explode("</".$tag.">",$value);
    $value = explode("<".$tag.">",$value[0]);
    return $value[1];
}

//한글 자르기
function hstrCut($msg,$cut_size,$end_str = "...") {
    if( (strlen($msg) > $cut_size) & ($cut_size > 0) ) {
            $msg = substr($msg,0,$cut_size);
            $msg = preg_replace("/(([\\x80-\\xFE].)*)[\\x80-\\xFE]?$/","\\1",$msg);
            $msg .= $end_str;
    }
    return $msg;
}

// 보여지는 부분
function RSS_reader($count,$url,$encode = "EUC-KR"){
    $channel = parseTag("channel",getRSS($url));
    // 인코딩 변환
    if($encode == "UTF-8"){
        $channel = iconv("UTF-8","EUC-KR",$channel);
    }
    $channel = str_replace("</item>","",$channel);
    $item = explode("<item>",$channel);
    // 제목 처리
    $siteTitle = parseTag("title",$item[0]);
    $siteLink = parseTag("link",$item[0]);
    $siteDescription = parseTag("description",$item[0]);
    
    //제목 출력
    $html = "[<a href=\"$siteLink\" target=\"_blank\">$siteTitle</a>]<br />";

    //각 게시물 제목 처리
    for($i=1;$i<=$count;$i++){
        if(!isset($item["$i"])) break;
        //제목 가져오기
        $title = hstrCut(parseTag("title",$item[$i]),30);
        //링크 가져오기
        $link = parseTag("link",$item[$i]);
        //내용 가져오기
        $description = parseTag("description",$item[0]);

        $html .= "<a href=\"$link\" target=\"_blank\">$title</a> <br />";    
    }

    // 출력
    echo $html;

}
?>

함수의 사용법은 다음과 같습니다.

RSS_reader("7","http://blog.jusun.org/tt/rss","UTF-8");

RSS_reader("가져올갯수","RSS주소","인코딩");

인코딩은 UTF-8 또는 생략 가능입니다. 생략하면 EUC-KR로..

RSS가 잘 안읽어지면 UTF-8 , EUC-KR 왔다갔따 바꿔보세요.. ^^


출처 : Tong - 드렁크수달스님의 ■ PHP ■통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3285 이것은 AI파일 미리보기입니다. 댓글3 M 최고의하루 01.15 3586
3284 이미지미리보기pds파일미리보기파일입니다^^ 댓글2 99 단국강토 01.14 2825
3283 동영상 캡쳐(Capture) 아주 쉽게 하기~ 99 단국강토 01.14 2615
3282 자판기안의 특수문자 99 단국강토 01.13 2530
3281 ntdll.dll 오류 해결방법 M 최고관리자 01.12 4392
3280 인터넷 동영상 저장하기 - 넷트랜스포터 사용 - M 최고의하루 01.12 3097
3279 옛날 기사를 찾아보고 싶을때 99 단국강토 01.08 2230
3278 CD 음악 mp3로 바꾸기 99 단국강토 01.08 2497
3277 알씨로 초간단 동영상 슬라이드쇼 만들기 99 단국강토 01.07 2841
3276 IP 추적은 어떻게 하는가? 99 단국강토 01.07 2391
3275 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 2351
3274 이것은 AI파일 미리보기입니다. 댓글2 M 최고의하루 01.15 4029
3273 이미지미리보기pds파일미리보기파일입니다^^ 99 단국강토 01.14 2446
3272 동영상 캡쳐(Capture) 아주 쉽게 하기~ 99 단국강토 01.14 2782
3271 공유기 차단 무력화 시키는 법 99 단국강토 01.13 3540
3270 자판기안의 특수문자 99 단국강토 01.13 2363
3269 ntdll.dll 오류 해결방법 M 최고의하루 01.12 3659
3268 인터넷 동영상 저장하기 - 넷트랜스포터 사용 - M 최고의하루 01.12 3224
3267 옛날 기사를 찾아보고 싶을때 99 단국강토 01.08 2168
3266 CD 음악 mp3로 바꾸기 99 단국강토 01.08 2485
3265 알씨로 초간단 동영상 슬라이드쇼 만들기 99 단국강토 01.07 3310
3264 IP 추적은 어떻게 하는가? 99 단국강토 01.07 2212
3263 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 2307
3262 [컴퓨터 키보드, 특수문자 정식 명칭들] M 최고의하루 12.18 3699
3261 하드,CPU,RAM 지원표 M 최고의하루 12.18 2583
3260 award bios 어워드 바이오스 설정법 M 최고의하루 12.18 3941
3259 내장 그래픽카드 죽이는 법 M 최고의하루 12.04 4877
3258 컴퓨터 조립 M 최고의하루 12.04 2829
3257 USB 버젼 속도 차이 2 천진난만 02.20 2374
3256 제가 사용하고 있는 마케팅프로그램입니다 댓글1 3 천지인 05.23 13191
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취