PHP ºÍ AJAX RSS ÔĶÁÆ÷

RSS ÔĶÁÆ÷ÓÃÓÚÔĶÁ RSS Feed¡£

RSS ÔÊÐí¶ÔÐÂÎź͸üнøÐпìËÙä¯ÀÀ¡£

AJAX RSS ÔĶÁÆ÷

ÔÚÏÂÃæµÄ AJAX ʵÀýÖУ¬ÎÒÃǽ«ÑÝʾһ¸ö RSS ÔĶÁÆ÷£¬Í¨¹ýËü£¬À´×Ô RSS µÄÄÚÈÝÔÚ²»½øÐÐˢеÄÇé¿öÏÂÔØÈëÍøÒ³¡£

ÔÚÏÂÃæµÄÁбí¿òÖÐÑ¡ÔñÒ»¸ö RSS ÐÂÎŶ©ÔÄ

Select an RSS-Feed:

ÔÚ´ËÁгö RSS Feed¡£

±¾Àý°üÀ¨Èý¸öÔªËØ£º

  • ¼òµ¥µÄ HTML ±íµ¥
  • JavaScript
  • PHP Ò³Ãæ

HTML ±íµ¥

ÕâÊÇ HTML Ò³Ãæ¡£Ëü°üº¬Ò»¸ö¼òµ¥µÄ HTML ±íµ¥ºÍÖ´ÐÐÒ»¸ö JavaScript ÎļþµÄÁ´½Ó£º

<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>

Àý×Ó½âÊÍ - HTML ±íµ¥

ÕýÈçÄú¿´µ½µÄ£¬ÉÏÃæµÄ HTML Ò³Ãæ°üº¬Ò»¸ö¼òµ¥µÄ HTML ±íµ¥£¬ÆäÖдøÓÐÒ»¸öÏÂÀ­Áбí¿ò¡£

±íµ¥ÊÇÕâÑù¹¤×÷µÄ£º

  1. µ±Óû§Ñ¡ÔñÏÂÀ­¿òÖеÄÑ¡Ïîʱ£¬»á´¥·¢Ò»¸öʼþ
  2. µ±Ê¼þ´¥·¢Ê±£¬Ö´ÐÐ showRSS() º¯Êý

±íµ¥ÏÂÃæÊÇÃûΪ "rssOutput" µÄÒ»¸ö <div>¡£ËüÓÃ×÷ showRSS() º¯ÊýËù·µ»ØµÄÊý¾ÝµÄռλ·û¡£

JavaScript

JavaScript ´úÂë´æ´¢ÔÚ "getrss.js" ÖУ¬ËüÓë HTML ÎĵµÏàÁ¬½Ó£º

var xmlHttp

function showRSS(str)
 { 
 xmlHttp=GetXmlHttpObject()
 if (xmlHttp==null)
  {
  alert ("Browser does not support HTTP Request")
  return
  }
 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;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

Àý×Ó½âÊÍ£º

stateChanged() ºÍ GetXmlHttpObject º¯ÊýÓë PHP ºÍ AJAX ÇëÇó ÕâÒ»½ÚÖеÄÀý×ÓÏàͬ¡£

showRSS() º¯Êý

ÿµ±ÔÚÏÂÀ­¿òÖÐÑ¡ÔñÑ¡Ôñʱ£¬¸Ãº¯Êý¾Í»áÖ´ÐУº

  1. ¶¨Òå·¢Ë͵½·þÎñÆ÷µÄ url £¨ÎļþÃû£©
  2. °Ñ²ÎÊý (q) Ìí¼Óµ½ url£¬²ÎÊýÄÚÈÝÊÇÏÂÀ­¿òÖеı»Ñ¡Ïî
  3. Ìí¼ÓÒ»¸öËæ»úÊý£¬ÒÔ·ÀÖ¹·þÎñÆ÷»º´æÎļþ
  4. µ÷Óà GetXmlHttpObject º¯ÊýÀ´´´½¨ XMLHTTP ¶ÔÏ󣬲¢¸æÖª¸Ã¶ÔÏóÔÚ´¥·¢Ò»¸ö¸Ä±äʱȥִÐÐ stateChanged º¯Êý
  5. ͨ¹ý¸ø¶¨µÄ url À´´ò¿ª XMLHTTP
  6. °Ñ HTTP ÇëÇó·¢¶¯µ½·þÎñÆ÷

PHP Ò³Ãæ

µ÷Óà JavaScript ´úÂëµÄ·þÎñÆ÷Ò³ÃæÊÇÃûΪ "getrss.php" µÄ 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>");
 }
?>

Àý×Ó½âÊÍ£º

µ±Ò»¸öÑ¡Ïî´Ó JavaScript ·¢ËÍʱ£¬»á·¢Éú£º

  1. PHP ÕÒ³öÄĸö RSS feed ±»Ñ¡ÖÐ
  2. ΪѡÖÐµÄ RSS feed ´´½¨ XML DOM ¶ÔÏó
  3. ÕÒµ½²¢Êä³öÀ´×Ô RSS ƵµÀµÄÔªËØ
  4. ±éÀúǰÈý¸ö RSS ÏîÄ¿ÖеÄÔªËØ£¬²¢½øÐÐÊä³ö
VUE