PHP和AJAX的RSS阅读器
RSS阅读器是用来读取RSS信息
允许快速的RSS浏览新闻和更新
AJAX的RSS阅读器
在AJAX以下例子,我们将展示一个RSS阅读器的内容从RSS是载入网页无需刷新。
在HTML表单
这是HTML网页。它包含一个简单的HTML表格,并链接到一个JavaScript :
RSS Feed will be listed here.
例如解释-的H TML表单
正如你可以看到, HTML网页上面载有一个简单的HTML表单的下拉框。
作品的形式像这样:
事件触发时,用户选择一个选项在下拉框中
当事件触发的功能要求showRSS ( )被处决。
下面的形式是一个所谓的“ rssOutput ” 。这是作为一个占位符返回的数据showRSS ( )函数。转载请注明来自http://www.111com.net/wy/yw.html
的JavaScript
JavaScript代码是储存在“ getrss.js ”和相关的HTML文件:var xmlHttpfunction 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 ( )函数
每一次的选择是选择在输入外地执行这一职能如下:
界定了网址(档)传送给服务器
添加一个参数( Q )的网址与选定的选项从下拉框中
添加一个随机数字,以防止服务器使用快取档案
吁请GetXmlHttpObject函数创建一个XMLHTTP物件,并讲述了对象执行的功能要求时stateChanged变化是触发
开幕XMLHTTP物件与特定网址。
发送一个HTTP请求到服务器
PHP页面
网页服务器要求的JavaScript代码是一个PHP文件名为“ getrss.php ” ://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=$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 "" echo(" " . $channel_title . ""); echo("
");
"); echo($channel_desc . "//get and output "- " 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 ("" . $item_title . ""); echo ("
"); } ?>转载请注明来自http://www.111com.net/wy/yw.html
"); echo ($item_desc . "