본문 바로가기

php

PHP로 RSS를 간단히 만들기


PHP로 RSS를 간단히 만들기 컴퓨터

나같은 노땅 코더에게 뜬금없이 떨어진 RSS ~~

PHP 로 되어 있는 게시판에 RSS를 달고 싶단다.....그래서 관련문서를 찾아봤다~

@.@ 졸~ 어....어렵다!! (망했군~)

암튼 어렵게 살고 싶지 않아서 쉽게 정리해본다~~ 나의 믿지 못할 기억력을 위하여~~

<?

header("Content-Type: application/rss+xml");
header('Content-Type: text/xml');

$now = date("D, d M Y H:i:s T"); // 시간 지정 (현재시간 단위~ )

echo "

// 머리부분 ~ 한번만 정의하면 된다

<?xml version=\"1.0\" encoding=\"euc-kr\"?>
    <rss version=\"2.0\">
        <channel>
        <title>제목 되시겠다</title>
        <link>링크주소를 써넣자</link>
        <description>간단한 설명글을 넣자</description>
        <language>ko</language>
        <pubDate>$now</pubDate> // XML이 만들어진 시간을 입력한다.
        <lastBuildDate>$now</lastBuildDate>
        <docs>걍 난 링크를 넣었다</docs>
        <managingEditor>이멜@주소</managingEditor>
        <webMaster>이멜@주소</webMaster>";


while (조건문... 어쩌고 저쩌고)
{

// 아이템 부분만 반목문으로 돌려주면 된다.
// 변수 부분은 개발자 마음대로 정의해서 사용하시길~

$name        = "작성자";
$use_type   = "카테고리";
$subject      = "제목";
$link           = "www.도메인.co.kr/페이지.php?변수1=변수값&amp;변수2=변수값2";
$Date          = date('r', strtotime($날짜컬럼)); //주로 아이템이 갱신된 날짜를 입력한다.
$descript     = "간단한 설명글을 넣는다~ 게시판이라면 본문의 일부를 넣어도 되고~"; 

참고로 XML 에서 예약문자는

< (less-than sign)      ==> &lt;
> (greater-than sign)  ==> &gt;
& (ampersand)          ==> &amp;

식으로 표현을 해줘야 한다.

그런데 일일이 예약문자를 파싱하기 번거롭다.
다행히 PHP는 htmlentities라는 함수로 처리가 가능하다.

참고로 한글이 들어가 있는 경우라면 htmlspecialchars 로 처리하고
읽는쪽에서 UTF-8의 경우 iconv 를 이용하여 변환하여 주면 된다.

echo "
        <item>
        <author>".$name."</author>
        <category>".$use_type."</category>
        <title>".$subject."</title>
        <link>".htmlentities($link)."</link>
        <guid>".htmlentities($link)."</guid>
        <pubDate>".$Date."</pubDate>
        <description>".$descript."</description>
        </item>";

}

//채널과  rss 정의를 마무리...

echo "</channel>
         </rss>";

참고로 아래 그림처럼 부라우져에서 RSS 피드 아이콘이 보이게 하려면


<head> 와 </head> 사이에

<link rel ="alternate" type="application/rss+xml" href="RSS 링크주소" title="제목" />

'php' 카테고리의 다른 글

[PHP5]생성자(Constructor)와 소멸자(Destructor)  (0) 2012.02.24
fsockopen urlencode  (0) 2012.02.21
날짜 차 구하기  (0) 2011.01.05
엑셀파일로 출력하기 html 헤더에 쓴다  (0) 2010.06.24
date  (0) 2010.05.03