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&amp;java(三)
Oct 09 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
PHP根据IP地址获取所在城市具体实现
Nov 27 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 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 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
python之pandas用法大全
2018/03/13 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
python超时重新请求解决方案
2019/10/21 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
父母对孩子说的话
2014/04/12 职场文书
金融管理专业求职信
2014/07/10 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
超详细Python解释器新手安装教程
2021/05/10 Python
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL