본문 바로가기
PHP/PHP and AJAX

PHP AJAX RSS Reader 구문

by 진격의 파파 2013. 7. 24.
반응형

 

 

이번장에서는 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