RSS Feed Example using Ajax & PHP

RSS

Really Simple Syndication (RSS) is used to publish often updated information from website like audio, video, images, etc. RSS is a technology that is being used by millions of web users around the world to keep track of their favorite websites.

Why RSS ? 

RSS solves a problem for people who regularly use the web. It allows you to easily stay informedby retrieving the latest content from the sites you are interested in. You save time by not needing to visit each site individually. You ensure your privacy, by not needing to join each site’s email newsletter.

We can integrate RSS feeds to a website by using Ajax and php. This blog will  demonstrates how to show RSS feeds in our site.

Let us say we are having RSS folder in Htdocs folder (as i am using xampp for demonstrating). So Create one file in RSS folder named “index.html”, which content a selection box with 3 options (CNN, BBC News, PC world).

Index.html

Index page should be as follows −

<html>
   <head>      
      
         function showRSS(str) {
            if (str.length==0) { 
               document.getElementById("output").innerHTML="";
               return;
            }
            if (window.XMLHttpRequest) {
               xmlhttp=new XMLHttpRequest();
            }
            else 
            {
               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function() {
               if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                  document.getElementById("output").innerHTML=xmlhttp.responseText;
               }
            }           
            xmlhttp.open("GET","rss.php?q="+str,true);
            xmlhttp.send();
         }
            
   </head>
   <body>
      <p>Please Select an option to get RSS:</p>
      <form>
         <select onchange="showRSS(this.value)">
            <option value="">Select an RSS-feed:</option>
            <option value="cnn">CNN</option>
            <option value="bbc">BBC News</option>
            <option value="pc">PC World</option>
         </select>
      </form>
      <br>
      
id="output">RSS-feeds
</body> </html>

rss.php

rss.php has contained syntax about how to get access to rss feeds and return rss feeds to web pages.

<?php
   $q=$_GET["q"];
   
   if($q=="cnn") {
      $xml=("http://rss.cnn.com/rss/cnn_topstories.rss");
   }
   
   elseif($q=="bbc") {
      $xml=("http://newsrss.bbc.co.uk/rss/newsonline_world_edition/americas/rss.xml");
   }
   
   elseif($q="pcw"){
      $xml=("http://www.pcworld.com/index.rss");
   }
   $xmlDoc = new DOMDocument();
   $xmlDoc->load($xml);
   
   $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;
   
   echo("<p><a href='" . $channel_link . "'>" . $channel_title . "</a>");
   echo("<br>");
   echo($channel_desc . "</p>");
   
   $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>");
   }
?>

Download Code

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s