이번장에서는 PHP AJAX RSS Reader 구문에 대해서 알아볼텐데요. 보통 뉴스기사, 블로그 등의 내용을 가져와 다른곳에 노출시키고 싶을때 많이들 사용합니다. 정말 재미있고 유용한 구문이며, 아래 나오는 예제를 잘 살펴보길 바랍니다.
RSS(Rich Site Summary) 의 사전적 의미 : 포털사이트나 블로그와 같이 컨텐츠 업데이트가 자주 일어나는 웹사이트에서, 업데이트 된 정보를 자동적으로 쉽게 사용자들에게 제공하기 위한 서비스. 사이트가 제공하는 RSS 주소를 소정의 RSS Reader 프로그램에 등록하기만 하면, 업데이트된 정보를 찾기 위해 매번 로그인하거나 방문할 필요 없이 자동적으로 이들을 확인하고 이용할 수 있는 편의성이 있습니다. RSS를 운영자와 사용자의 입장에서 보았을 때, 서비스 운영자는 신규 또는 추천 정보를 고객에게 보다 손쉽게 제공할 수 있으며 사용자는 관심있는 정보를 쉽고 빠르게 조회할 수 있습니다.
예제구문
------ rss.html ------
<html>
<head>
<script>
function showRSS(str)
{
if (str.length==0)
{
document.getElementById("rssOutput").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("rssOutput").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","rss.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<select onchange="showRSS(this.value)">
<option value="">RSS-선택하세요:</option>
<option value="park">Park's blog</option>
<option value="hani">한겨례 News</option>
<option value="gyung">경향 News</option>
<option value="jung">중앙일보 News</option>
<option value="Google">Google News</option>
</select>
</form>
<br>
<div id="rssOutput">RSS의 내용이 이곳에 나옵니다.</div>
</body>
</html>
// select 구문에서 블로그 또는 언론사를 선택하면 showRss() 함수를 타며, value 값이 rss.php 로 전달되게 됩니다. 그래서 선택한 rss의 내용이 화면에 나타나게 됩니다.
------- rss.php -------
<?php
//get the q parameter from URL
$q=$_GET["q"];
//$q 변수값을 비교하여 해당하는 rss 값을 보여줌
if($q=="Google") {
$xml=("http://news.google.com/news?ned=us&topic=h&output=rss");
} elseif($q=="hani") {
$xml=("http://www.hani.co.kr/rss/");
} elseif($q=="gyung") {
$xml=("http://www.khan.co.kr/rss/rssdata/total_news.xml");
} elseif($q=="jung") {
$xml=("http://rss.joinsmsn.com/joins_news_list.xml");
} elseif($q=="park") {
$xml=("http://blog.rss.naver.com/makand123.xml");
}
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
//"<channel>"로 부터 값을 가져옴
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$channel_link = $channel->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;
//output elements from "<channel>"
echo("<p><a href='" . $channel_link
. "'>" . $channel_title . "</a>");
echo("<br>");
echo($channel_desc . "</p>");
//"<item>" 요소를 가져와 출력함
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++)
{
$item_title=$x->item($i)->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$item_link=$x->item($i)->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$item_desc=$x->item($i)->getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;
echo ("<p><a href='" . $item_link
. "'>" . $item_title . "</a>");
echo ("<br>");
echo ($item_desc . "</p>");
}
?>
// 위 두개의 구문을 이용하여 블로그 및 뉴스기사의 내용을 RSS로 가져올수 있게됩니다. 소스를 복사해서 테스트 해보거나 직접 코딩하면서 테스트 해보시기 바랍니다~
// 위 그림은 제 블로그 rss를 가져온것이고 한겨례, 경향, 중앙 등을 선택하면 그에 해당하는 기사를 가져오게 됩니다.
'PHP > PHP and AJAX' 카테고리의 다른 글
PHP AJAX Live Search 구문 (0) | 2013.07.23 |
---|---|
PHP AJAX XML 연동 (0) | 2013.07.22 |
PHP AJAX 데이터베이스 연동 (9) | 2013.07.19 |
PHP AJAX 구문 (0) | 2013.07.18 |