[PHP & XML] RSS 만들기

Posted at 2012.08.12 19:26 | Posted in 프로그래밍

비트맵 미러에 필요하진않지만 있으면 좋을 것 같아서 적용해봤다. 비트맵 미러에서 검색창 밑에 메뉴 상자에 RSS라고 써져있는게 오늘 만들어 볼 RSS다.

RSS 만드는데 있어서 필수적인 요소만 뽑아보면 다음과 같다.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>RSS 제목</title>
		<description>RSS 설명</description>
		<link>RSS의 원본 사이트 주소</link>
		<item>
			<title>항목 제목</title>
			<description>항목 내용</description>
			<link>항목 주소</link>
		</item>
	</channel>
</rss>

간단하다. 예전엔 RSS하면 지레 겁부터 먹었는데; XML 홈페이지 만들기 같이 무서운 책 읽어서 그런가..
각설하고, 각 요소에 들어가는 특수문자들은 &lt;처럼 php의 htmlspecialchars()나 htmlentities()로 인코딩되어야한다.

바로 php로 위의 RSS를 만들어보자.

<?php
	header('Content-Type: text/xml; charset=utf-8');
	echo '<?xml version="1.0" encoding="UTF-8"?>';
?> 
<rss version="2.0">
	<channel>
		<title>나는 RSS</title>
		<link>http://<?=$_SERVER['HTTP_HOST']?>/</link>
		<description>최신글을 뽑아오지</description>
<?php
	foreach($result as $i) {
		foreach($i as $key=>$val) $i[$key] = htmlspecialchars($val);
?>
		<item>
			<title><?=$i['title']?></title>
			<link>http://<?=$_SERVER['HTTP_HOST'].'/'.$i['id']?></link>
			<description><?=$i['content']?></description>
			<author><?=$i['author']?></author>
			<pubDate><?=date('D, d M Y H:i:s O', strtotime($i['date'])?></pubDate>
		</item>
<?php
	}
?>
	</channel>
</rss>

위 뼈대에 mysql등 데이터베이스와 연동시켜 사용하면 되겠죠?

참고: RSS 2.0 Specification

저작자 표시 비영리
신고

Name __

Password __

Link (Your Website)

Comment