본문 바로가기

PHP로 작동하는 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 왔다갔따 바꿔보세요.. ^^

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.