pear패키지를 이용한 rss뉴스 읽기

먼저 pear패키지를 설치해야 한다.
무슨 패키지가 있는지 확인하는 방법은
[root@cms-img src]# /usr/local/php/bin/pear list

http://pear.php.net 에서 최신 패키지를 다운 받고
해당 서버에 올린다음 압축을 풀어 설치한다.
[root@cms-img src]# tar zvfx XML_Parser-1[1].2.6.tgz
[root@cms-img src]# cd XML_Parser-1[1].2.6
[root@cms-img src]# /usr/local/php/bin/pear install XML_Parser

[root@cms-img src]# tar zvfx XML_Tree-2.0.0RC2
[root@cms-img src]# cd XML_Tree-2.0.0RC2
[root@cms-img src]# /usr/local/php/bin/pear install XML_Tree

[root@cms-img src]# tar zvfx XML_RSS-0[1].9.2.tgz
[root@cms-img src]# cd XML_RSS-0[1].9.2.tgz
[root@cms-img src]# /usr/local/php/bin/pear install XML_RSS

주의 사항은 파일을 utf-8 타입으로 저장해야지 한글 파이일이 깨지지 않고 나온다.

parse();

/*
keys :title, link, description, dc:date (or pubdate)
*/
$channel_info = array();

foreach($r->getChannelInfo() as $key => $val) {
$channel_info[“cp_” . $key] = $val;
}

foreach ($r->getItems() as $value) {

array_change_key_case($value, CASE_LOWER);

$tmp_arr = array_merge($value, $channel_info);

if($tmp_arr[“dc:date”])
$tmp_arr[date] = $tmp_arr[“dc:date”];
else if($tmp_arr[“pubdate”])
$tmp_arr[date] = $tmp_arr[“pubdate”];

// unix timestamp를 키로 한다.
$key = strtotime($tmp_arr[date]);

$tmp_arr[date] = date(DATE_FORMAT, $key);

// 키가 중복되지 않도록….
while(array_key_exists($key,$news)) {
$key–;
}

if($tmp_arr[description])
$tmp_arr[description] = parse_description($tmp_arr[description]);
$news[$key] = $tmp_arr;
}
}
// 시간의 역순으로 정렬
krsort($news, SORT_NUMERIC);

$k = 0;

ob_start();
// 뉴스 아이템을 화면에 출력한다.
foreach($news as $item) {
$k++;

// 제한 갯수 까지만 보여준다
if($k > PAGE_LIMIT)
break;

?>

  • () []


  • 예제 url이다
    http://192.168.1.36/test/news_rss.php

    답글 남기기

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다