작성자
꿘쓰
작성일/수정일
2016-07-30 11:35:17 / 2016-07-30 11:35:17
네이버 웹마스터 도구 RSS제출(등록)을 위한 PHP게시판 RSS 생성 프로그램
데모 보기 : http://www.relation.co.kr/default/rss_builer.xml
<?
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=변수값&변수2=변수값2";
$Date = date('r', strtotime($날짜컬럼)); //주로 아이템이 갱신된 날짜를 입력한다.
$descript = "간단한 설명글을 넣는다~ 게시판이라면 본문의 일부를 넣어도 되고~";
참고로 XML 에서 예약문자는
< (less-than sign) ==> <
> (greater-than sign) ==> >
& (ampersand) ==> &
식으로 표현을 해줘야 한다.
그런데 일일이 예약문자를 파싱하기 번거롭다.
다행히 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="제목" />