Kusoma RSS wa AJAX wa PHP

Mkolezi wa RSS wa RSS inaonyesha habari kutoka kwenye RSS.

RSS inafaa kwa kusoma habari na upatezaji kwa urahisi.

Mkolezi wa RSS wa AJAX

Mfano wa AJAX kwenye RSS, hii inaonyesha habari kutoka kwenye RSS kuingia katika tovuti bila kufanyia kuzima kwa tovuti.

Chagua habari ya kusoma kwenye orodha hii inayotumiwa kwenye kikapteni

Chagua RSS-Feed:

Inakazwa hapa RSS Feed.

Mfano huu una elementi tatu:

  • Fomu ya HTML ya kawaida
  • JavaScript
  • Mawakilishi wa PHP

Fomu ya HTML

Hii la tovuti ya HTML. Ina muundo wa HTML wa kawaida na viungo vya JavaScript kwenye tovuti:

<html>
<head>
<script type="text/javascript" src="getrss.js"></script>
</head>
<body>
<form> 
Select an RSS-Feed:
<select onchange="showRSS(this.value)">
<option value="Google">Google News</option>
<option value="MSNBC">MSNBC News</option>
</select>
</form>
<p><div id="rssOutput">
<b>RSS Feed will be listed here.</b></div></p>
</body>
</html>

Mafano ya uharibifu - Fomu ya HTML

Kama unavyofikia, ukurasa wa HTML juu una fomu ya kawaida ya HTML yenye chaguo cha kizitoa.

Kazi ya fomu ni kama iliyotazwa:

  1. Kama mtumiaji anachagua chaguo cha kizitoa, hatua inatukia
  2. Kama kiwango kilichotukia, showRSS() funguo kinafanyishwa

Kifo cha fomu kina divi yenye jina "rssOutput". Hii inatumiwa kama mabaki ya data ya kuzingatia kutoka kwa showRSS() funguo.

JavaScript

Makini ya JavaScript iweza kuhifadhiwa katika faili "getrss.js", ambayo inapakia na hali ya HTML:

var xmlHttp
function showRSS(str)
 { 
 xmlHttp=GetXmlHttpObject()
 if (xmlHttp==null)
  {
  alert ("Kifaa cha kifurahia anasema HTTP Request")
  kubali
  }
 var url="getrss.php"
 url=url+"?q="+str
 url=url+"&sid="+Math.random()
 xmlHttp.onreadystatechange=stateChanged 
 xmlHttp.open("GET",url,true)
 xmlHttp.send(null)
 }
function stateChanged() 
 { 
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  { 
  document.getElementById("rssOutput")
  .innerHTML=xmlHttp.responseText 
  } 
 }
function GetXmlHttpObject()
{
var xmlHttp=null;
hataa
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
kataa (e)
 {
 // Internet Explorer
 hataa
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 kataa (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
kubali xmlHttp;
}

Mfano wa kufafanisha:

stateChanged() na GetXmlHttpObject funguo na Tuma乞求 wa AJAX wa PHP Mfano hii unaonekana kama hii.

Mengineko showRSS()

Kila mara inapotumika kwa kuzingatia chaguo cha kielektroniki, mengineko hii inaendelea kufanyika:

  1. Inadefini url yenye uwanja wa kusaidia kwa server (jina la faili)
  2. Inadui thamani (q) kwa url, thamani inaonekana kwa ajili ya chaguo cha kielektroniki
  3. Inadui namba ya nguvu, ili kuzingatia ukumbukumbu wa server wa faili
  4. Inakubalia uwanja wa GetXmlHttpObject kwa kuanzisha uwanja wa XMLHTTP, na inarudisha inafanyia kazi stateChanged kama uwanja huo inapokwenda
  5. Inafungua XMLHTTP kwa sababu ya url yenye taarifa
  6. Inafungua tafutaji wa HTTP kwa server

Mawakilishi wa PHP

Kwa kusaidia mengineko ya JavaScript, mawakilishi wa server ni wasifu "getrss.php" wa PHP:

<?php
//get the q parameter from URL
$q=$_GET["q"];
//find out which feed was selected
if($q=="Google")
 {
 $xml=("http://news.google.com/news?ned=us&topic=h&output=rss");
 }
elseif($q=="MSNBC")
 {
 $xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml");
 }
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
//get elements from "<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>");
//get and output "<item>" elements
$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>");
 }
?>

Mfano wa kufafanisha:

Kufikia huzina hii kwamba msaada kutoka JavaScript.

  1. PHP kuingia chanzo cha RSS chaguo.
  2. Kuchangia XML DOM kwa chanzo cha RSS chaguo.
  3. Kupata na kusaidia kuzingatia uadilifu kutoka chanzo cha RSS
  4. Kusoma uadilifu wa kwanza tatu wa RSS kwa sababu ya kichwa, na kusaidia kuzingatia.