php ajax异步读取rss文档数据


Posted in PHP onMarch 29, 2016

RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。

本文实例为大家分享了php ajax异步读取rss文档数据的相关代码,供大家参考,具体内容如下

代码如下:

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

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

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

PHP 相关文章推荐
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
IIS6的PHP最佳配置方法
Mar 19 PHP
实用函数5
Nov 08 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
asp.net和php的区别点总结
Oct 10 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 #PHP
详解PHP匿名函数与注意事项
Mar 29 #PHP
php ajax实现文件上传进度条
Mar 29 #PHP
php $_SESSION会员登录实例分享
Jan 19 #PHP
PHP实现163邮箱自动发送邮件
Mar 29 #PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 #PHP
PHP创建word文档的方法(平台无关)
Mar 29 #PHP
You might like
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
python实现银行实战系统
2020/02/26 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
销售员岗位职责
2015/02/10 职场文书
八一建军节慰问信
2015/02/14 职场文书
公司慰问信范文
2015/03/23 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
MySQL 数据表操作
2022/05/04 MySQL