emirhanHCL 1
emirhanHCL
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
farkmt2official 1
farkmt2official
Hikaye Ekle

PHP - AJAX RSS Feed Örneği

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

Gerçekten Basit Sindikasyon (RSS)

Really Simple Syndication (Gerçekten Basit Sendikasyon) anlamına gelen RSS, ses, video, resim vb. gibi web sitelerinden sıklıkla güncellenen bilgileri yayınlamak için kullanılır. AJAX ve PHP kullanarak bir web sitesine RSS beslemeleri entegre edebiliriz. Bu kod, sitemizde RSS beslemelerinin nasıl gösterileceğini gösterir.


Index.html

Dizin sayfası aşağıdaki gibi olmalıdır:

HTML:
<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>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>
   <div id = "output">RSS-feeds</div>
</body>
</html>

rss.php

"rss.php" RSS Feed'lerine nasıl erişileceği ve RSS Feed'lerinin web sayfalarına nasıl döndürüleceği ile ilgili söz dizimini içeriyordu.

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

Aşağıdaki çıktıyı üretecektir:

php_rss_feed_example.jpg
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst