PHP - AJAX Auto Complete Search

Đôi điều về RSS

Really Simple Syndication được sử dụng để công bố thông tin được cập nhật từ Website như audio, video, image, … Chúng ta có thể tích hợp RSS feed tới một Website bởi sử dụng AJAX và PHP. Code dưới minh họa cách hiển thị RSS feed trong Site của bạn.

Tệp index.html

Index page nên là như sau:

<html>
   <head>

      <script>
         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();
         }
      </script>

   </head>
   <body>
      <p>Nhập một lựa chọn để lấy RSS:</p>

      <form>
         <select onchange="showRSS(this.value)">
            <option value="">Lựa chọn một RSS-feed:</option>
            <option value="cnn">CNN</option>
            <option value="bbc">BBC News</option>
            <option value="pc">PC World</option>
         </select>
      </form>
      <br>

      <div id="output">RSS-feeds</div>

   </body>
</html>

Tệp rss.php

rss.php đã chứa cú pháp về cách lấy truy cập tới RSS feed và trả về RSS feed tới Webpage.

<?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>");
   }
?>

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:


Bình luận