프리랜서 웹디자이너 웹퍼블리셔RELATION

RELATION 로고

PHP 웹프로그래밍

[소스] PHP를 이용한 RSS 만들기

2016.07.30
북마크 [출처 이동]    작성자 정보
네이버 웹마스터 도구 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="제목" />



이 포스트 공유하기

전체목록