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的图形函数中显示汉字
Oct 09 PHP
生成静态页面的PHP类
Nov 25 PHP
PHP动态创建Web站点的方法
Aug 14 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
解析isset与is_null的区别
Aug 09 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
无需数据库在线投票调查php代码
Jul 20 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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
ajax缓存问题解决途径
2006/12/06 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
joomla组件开发入门教程
2016/05/04 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
webpack+vue.js实现组件化详解
2016/10/12 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
Python中Numpy ndarray的使用详解
2019/05/24 Python
Django框架 querySet功能解析
2019/09/04 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
八一建军节部队活动方案
2014/02/04 职场文书
酒店节能降耗方案
2014/05/08 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
迟到检讨书
2015/01/26 职场文书
研讨会通知
2015/04/27 职场文书
保险公司增员口号
2015/12/25 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
JavaScript设计模式之原型模式详情
2022/06/21 Javascript