当前位置:首页 > PHP教程 > php应用 > 列表

PHP和AJAX的RSS阅读器

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-20 16:01:18 浏览: 评论:0 

PHP和AJAX的RSS阅读器,RSS阅读器是用来读取RSS信息,允许快速的RSS浏览新闻和更新.

AJAX的RSS阅读器:在AJAX以下例子,我们将展示一个RSS阅读器的内容从RSS是载入网页无需刷新.

在HTML表单:这是HTML网页,它包含一个简单的HTML表格,并链接到一个JavaScript:

  1. <html> 
  2. <head> 
  3. <script type="text/javascript" src="getrss.js"></script> 
  4. </head> 
  5. <body><form>  
  6. Select an RSS-Feed: 
  7. <select onchange="showRSS(this.value)"> 
  8. <option value="Google">Google News</option> 
  9. <option value="MSNBC">MSNBC News</option> 
  10. </select> 
  11. </form><p><div id="rssOutput"> 
  12. <b>RSS Feed will be listed here.</b></div></p> 
  13. </body> 
  14. </html> 

例如解释-的H TML表单正如你可以看到,HTML网页上面载有一个简单的HTML表单的下拉框,作品的形式像这样,事件触发时,用户选择一个选项在下拉框中当事件触发的功能要求showRSS ( )被处决,下面的形式是一个<div>所谓的“ rssOutput ”,这是作为一个占位符返回的数据showRSS ( )函数的JavaScript,JavaScript代码是储存在“ getrss.js ”和相关的HTML文件:var xmlHttp

  1. function showRSS(str) 
  2.  {  
  3.  xmlHttp=GetXmlHttpObject() 
  4.  if (xmlHttp==null
  5.   { 
  6.   alert ("Browser does not support HTTP Request"
  7.   return 
  8.   } 
  9.  var url="getrss.php" 
  10.  url=url+"?q="+str 
  11.  url=url+"&sid="+Math.random() 
  12.  xmlHttp.onreadystatechange=stateChanged  
  13.  xmlHttp.open("GET",url,true
  14.  xmlHttp.send(null
  15.  } 
  16.  
  17. function stateChanged()  
  18.  {  
  19.  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"
  20.   {  
  21.   document.getElementById("rssOutput"
  22.   .innerHTML=xmlHttp.responseText  
  23.   }  
  24.  } 
  25. function GetXmlHttpObject() 
  26. var xmlHttp=null
  27. try 
  28.  { 
  29.  // Firefox, Opera 8.0+, Safari 
  30.  xmlHttp=new XMLHttpRequest(); 
  31.  } 
  32. catch (e) 
  33.  { 
  34.  // Internet Explorer 
  35.  try 
  36.   { 
  37.   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
  38.   } 
  39.  catch (e) 
  40.   { 
  41.   xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
  42.   } 
  43.  } 
  44. return xmlHttp; 

例如解释 该stateChanged ( )和GetXmlHttpObject职能是一样的PHP的AJAX推荐的篇章,该showRSS ( )函数每一次的选择是选择在输入外地执行这一职能如下:界定了网址(档)传送给服务器 添加一个参数( Q )的网址与选定的选项从下拉框中 添加一个随机数字,以防止服务器使用快取档案,吁请GetXmlHttpObject函数创建一个XMLHTTP物件,并讲述了对象执行的功能要求时stateChanged变化是触发 开幕XMLHTTP物件与特定网址,发送一个HTTP请求到服务器,PHP页面网页服务器要求的JavaScript代码是一个PHP文件名为“ getrss.php ” :

  1. ​<?php 
  2.  
  3. //get the q parameter from URL 
  4. $q=$_GET["q"]; 
  5. //find out which feed was selected 
  6. if($q=="Google"
  7.  { 
  8.  $xml=("http://news.phpfensi.com/news?ned=us&topic=h&output=rss"); 
  9.  } 
  10. elseif($q=="MSNBC"
  11.  { 
  12.  $xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml"); 
  13.  } 
  14. $xmlDoc = new DOMDocument(); 
  15. $xmlDoc->load($xml); 
  16. //get elements from "<channel>" 
  17. $channel=$xmlDoc->getElementsByTagName('channel')->item(0); 
  18. $channel_title = $channel->getElementsByTagName('title'
  19. ->item(0)->childNodes->item(0)->nodeValue; 
  20. $channel_link = $channel->getElementsByTagName('link'
  21. ->item(0)->childNodes->item(0)->nodeValue; 
  22. $channel_desc = $channel->getElementsByTagName('description'
  23. ->item(0)->childNodes->item(0)->nodeValue; 
  24. //output elements from "<channel>" 
  25. echo("<p><a href='" . $channel_link 
  26.  . "'>" . $channel_title . "</a>"); 
  27. echo("<br />"); 
  28. echo($channel_desc . "</p>"); 
  29. //get and output "<item>" elements 
  30. $x=$xmlDoc->getElementsByTagName('item'); 
  31. for ($i=0; $i<=2; $i++) 
  32.  { 
  33.  $item_title=$x->item($i)->getElementsByTagName('title'
  34.  ->item(0)->childNodes->item(0)->nodeValue; 
  35.  $item_link=$x->item($i)->getElementsByTagName('link'
  36.  ->item(0)->childNodes->item(0)->nodeValue; 
  37.  $item_desc=$x->item($i)->getElementsByTagName('description'
  38.  ->item(0)->childNodes->item(0)->nodeValue; 
  39. echo ("<p><a href='" . $item_link 
  40.  . "'>" . $item_title . "</a>"); 
  41.  echo ("<br />"); 
  42.  echo ($item_desc . "</p>"); 
  43.  } 
  44. ?> 

Tags: PHP AJAX RSS阅读器

分享到: