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防注
Jan 15 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
CodeIgniter集成smarty的方法详解
May 26 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 PHP
Laravel框架源码解析之反射的使用详解
May 14 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魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
php 购物车完整实现代码
2014/06/05 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP经典面试题集锦
2015/03/19 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
jquery动态添加option示例
2013/12/30 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
广告学毕业生求职信
2014/01/30 职场文书
带病坚持工作事迹
2014/05/03 职场文书
大学生求职自荐信
2015/03/24 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL