PHP로 작동하는 RSS 읽는 함수
인터넷정보2007. 10. 11. 23:46
http://oxtag.com/php/p/rssReader.php
<?
// 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 왔다갔따 바꿔보세요.. ^^
RSS 주소 모음 페이지.. 아래 링크..
http://haco.tistory.com/1924
http://oxtag.com/php/p/rssReader.php?cut=30&rss=http://rss.cbs.co.kr/nocutnews.xml
<?
// 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 왔다갔따 바꿔보세요.. ^^
RSS 주소 모음 페이지.. 아래 링크..
http://haco.tistory.com/1924
http://oxtag.com/php/p/rssReader.php?cut=30&rss=http://rss.cbs.co.kr/nocutnews.xml
http://oxtag.com/php/p/rssReader2.php?cut=25&rss=http://rss.donga.com/stotal.xml
'인터넷정보' 카테고리의 다른 글
자주 쓰는 연산자 보기 (0) | 2007.10.11 |
---|---|
파일의 존재유무 (0) | 2007.10.11 |
PHP 유용한상수들 SID 라는 상수 (0) | 2007.10.11 |
설문조사 등등 로딩바 구현 (0) | 2007.10.11 |
AJAX를 이용한 메모보드(포스트잇) (0) | 2007.10.11 |
심플한 라이트박스 효과 (이미지, 아이프레임, html 지원) (0) | 2007.10.11 |
HTTP 인증(Basic타입)이 걸린 URL을 fsockopen에서 여는 방법 (0) | 2007.10.11 |
픽셀단위 문자열 자르기 (한글자르기) (0) | 2007.10.11 |
설치가 필요없는 ftp, telnet 프로그램 (0) | 2007.10.11 |
파폭에서 익스플로러를 쓰자 (0) | 2007.10.11 |