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 相关文章推荐
javascript,php获取函数参数对象的代码
Feb 03 PHP
PHP If Else(elsefi) 语句
Apr 07 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
May 23 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 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
php 引用(&amp;)详解
2009/11/20 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
python数组复制拷贝的实现方法
2015/06/09 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
python tkinter实现屏保程序
2019/07/30 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
2014年党建工作汇报材料
2014/10/27 职场文书
实训报告范文大全
2014/11/04 职场文书
工作态度不好检讨书
2015/05/06 职场文书
庭外和解协议书
2016/03/23 职场文书