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中for循环语句的几种变型
Mar 16 PHP
php随机输出名人名言的代码
Oct 07 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
php模拟post上传图片实现代码
Jun 24 PHP
PHP的自定义模板引擎
Mar 24 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
PHP7 标准库修改
Mar 09 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/08/19 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
Python笔试面试题小结
2019/09/07 Python
python实现猜数字游戏
2020/03/25 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
python 实现控制鼠标键盘
2020/11/27 Python
struct与class的区别
2014/02/03 面试题
技术总监管理岗位职责
2014/03/09 职场文书
益达广告词
2014/03/14 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
宿舍标语大全
2014/06/19 职场文书
2014年物流工作总结
2014/11/25 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
Redis入门基础常用操作命令整理
2022/06/01 Redis