PHP读取RSS(Feed)简单实例


Posted in PHP onJune 12, 2014

最近在弄博客,但各种博客间同步比较麻烦,好在每一个博客都有自己的RSS聚合系统,可以通过RSS实现博客同步调用,于是自己动手用RSS实现博客同步发布,在其中就研究一下PHP读RSS。

RSS是用XML来书写的,XML 是一种数据存储格式。PHP读取XML数据有三种方法:用XML解析函数、DOM模块和正则表达式,最直接地就是直接解析XML,获取XML中的数据。

以下是解析代码:

<?php
error_reporting(E_ALL^E_NOTICE);
$rssfeed = "feed.xml";
header('Content-Type:text/html;charset= UTF-8');
$buff = "";
 //打开rss地址,并读取
 $fp = fopen($rssfeed,"r") or die("can not open $rssfeed");
 while ( !feof($fp) ) {
 $buff .= fgets($fp,4096);
 }
 //关闭文件
 fclose($fp);
//建立一个 XML 解析器
 $parser = xml_parser_create();
 //xml_parser_set_option -- 为指定 XML 解析进行选项设置
 xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
 //xml_parse_into_struct -- 将 XML 数据解析到数组$values中
 xml_parse_into_struct($parser,$buff,$values,$idx);
 //xml_parser_free -- 释放指定的 XML 解析器
 xml_parser_free($parser);
foreach ($values as $val) {
 $tag = $val["tag"];
 $type = $val["type"];
 $value = $val["value"];
 //标签统一转为小写
 $tag = strtolower($tag);
if ($tag == "item" && $type == "open"){
 $is_item = 1;
 }else if ($tag == "item" && $type == "close") {
 //构造输出字符串
 echo "<a href="".$link."" target="_blank">".$title."</a>
 ";
 //echo $content."
 ";
 $is_item = 0;
 }
 //仅读取item标签中的内容
 if($is_item==1){
 if ($tag == "title") {$title = $value;}
 if ($tag == "link") {$link = $value;}
 if ($tag =="content:encoded"){$content=$value;}
 }
 }
 ?>

以下是用该程序读取feed的效果:

PHP读取RSS(Feed)简单实例

PHP 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
人大复印资料处理程序_补充篇
Oct 09 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
基于PHP对XML的操作详解
Jun 07 PHP
php简单实现MVC
Feb 05 PHP
php实现异步数据调用的方法
Dec 24 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 #PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 #PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
Jun 12 #PHP
Codeigniter生成Excel文档的简单方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 #PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 #PHP
You might like
简单易用的计数器(数据库)
2006/10/09 PHP
社区(php&amp;&amp;mysql)五
2006/10/09 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
php实现购物车功能(上)
2020/07/23 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
JavaScript类的写法
2016/09/17 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Python基础教程之异常详解
2019/01/10 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
大学同学聚会邀请函
2014/01/29 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
同学聚会开幕词
2019/04/02 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python
css3新特性的应用示例分析
2022/03/16 HTML / CSS
Android Rxjava3 使用场景详解
2022/04/07 Java/Android