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和ACCESS写聊天室(三)
Oct 09 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
php发送post请求的三种方法
Feb 11 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
PHP抓取及分析网页的方法详解
Apr 26 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 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
用session做客户验证时的注意事项
2006/10/09 PHP
php htmlspecialchars加强版
2010/02/16 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
php 邮件发送问题解决
2014/03/22 PHP
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
Python 高效编程技巧分享
2020/09/10 Python
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
医疗专业毕业生求职信
2014/08/28 职场文书
2015年学校财务工作总结
2015/05/19 职场文书