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目录操作函数之获取目录与文件的类型
Dec 29 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 PHP
PHP中call_user_func_array()函数的用法演示
Feb 05 PHP
PHP处理excel cvs表格的方法实例介绍
May 13 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
PHP数组函数知识汇总
May 12 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 PHP
PHP获取学生成绩的方法
Nov 17 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的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
windows下ipython的安装与使用详解
2016/10/20 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
用Python写一个自动木马程序
2019/09/17 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
聊聊python中的异常嵌套
2020/09/01 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
Linux上比较文件的命令都有哪些
2012/02/24 面试题
职工运动会感言
2014/02/07 职场文书
质量保证书
2015/01/17 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
教师旷工检讨书
2015/08/15 职场文书