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

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

-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

번호 제목 글쓴이 날짜 조회
3015 APM에서 utf-8 구현 방법 13 김영철 01.14 2587
3014 utf-8 사용시 설정 - db의 입출력을 완벽하게 utf-8 13 김영철 01.14 2003
열람중 PHP로 작동하는 RSS 읽는 함수 13 김영철 01.14 2079
3012 EditPlus V2.30 되면서 눈에띄는 달라진점 7가지 13 김영철 01.14 2350
3011 오라클 캐릭터 셋 변경 M 최고의하루 01.12 3461
3010 체크박스 배열을 edit 수정페이지로 불러오기 M 최고의하루 01.12 3801
3009 config 배열. 99 단국강토 01.08 2517
3008 Rewrite 99 단국강토 01.08 3111
3007 특정폴더에서 파일을 이미지파일을 들고와서 선택시..이미지 변환 99 단국강토 01.07 3061
3006 book_shop 99 단국강토 01.07 2946
3005 Sub와 Function 차이점 99 단국강토 01.06 1887
3004 PUTTY Telnet , SSH 접속 프로그램 99 단국강토 01.06 3755
3003 VBScript 온라인 도움말 Ver 5.5 99 단국강토 01.05 3005
3002 스마택 Ver 0.2 ( 소스 자동 정렬 프로그램 ) 99 단국강토 01.05 2204
3001 # 제목을 입력하는 곳 (넓은 사이즈) M 최고의하루 01.03 2166
3000 Editplus v3.0 (문서 편집기) M 최고의하루 01.03 3074
2999 [ JSP ] 브라우저 인코딩이 자동으로 한글이 안되는 경우 해결법 99 단국강토 01.02 2861
2998 [ JS ] 버튼을 이용한 이미지 넘기기 ( 이미지 리스트 ) 99 단국강토 01.02 2878
2997 [AJAX] 자바스크립트에서 XML 파일 읽어 오기 99 단국강토 12.30 3156
2996 [AJAX] DOMDocument 에서 selectSingleNode 을 이용한 XML 노드 (Node) 찾기 99 단국강토 12.30 2988
2995 [ JS , AJAX ] DOM 크로스브라우징 : 원하는 노드 찾기 [ createDocument , DOMDocument ] M 최고의하루 12.26 2488
2994 외부링크 금지하는 방법 M 최고의하루 12.26 2139
2993 오늘 하루 창 열지 않기 M 최고의하루 12.24 3303
2992 DLL화일 레지스트리에 등록 또는 삭제 하기 M 최고의하루 12.24 3307
2991 팝업창 닫고 프레임이 있는 부모창에서 원하는 페이지로 이동하기 M 최고의하루 12.23 2914
2990 [펌] 제11강 - ADO(Active Database Object) - Database Access Component Cobol vs C#-2 M 최고의하루 12.23 2103
2989 [펌] 제11강 - ADO(Active Database Object) - Database Access Component Cobol vs C#-1 M 최고의하루 12.23 3979
2988 [펌] 제12강 - 방명록 만들기 I M 최고의하루 12.23 5324
2987 [펌] 제13강 - 방명록 만들기 II M 최고의하루 12.20 2385
2986 [펌] 제14강 - 방명록 만들기 III M 최고의하루 12.20 2497
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취