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 相关文章推荐
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
php文档更新介绍
Jul 22 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
php跨站攻击实例分析
Oct 28 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
PHP中的异常处理机制深入讲解
Nov 10 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
其他功能
2006/10/09 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Php多进程实现代码
2018/05/07 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
黄河象教学反思
2014/02/10 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
2014年班务工作总结
2014/12/02 职场文书
历史博物馆观后感
2015/06/05 职场文书
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs