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 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
php xml实例 留言本
Mar 20 PHP
理解和运用PHP中的多态性[译]
Aug 02 PHP
深入分析php中接口与抽象类的区别
Jun 08 PHP
php格式化日期实例分析
Nov 12 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
symfony2.4的twig中date用法分析
Mar 18 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
php文件包含的几种方式总结
Sep 19 PHP
Laravel中Kafka的使用详解
Mar 24 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写的采集程序
2007/03/16 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
JavaScript闭包相关知识解析
2019/10/19 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
python网络编程之文件下载实例分析
2015/05/20 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
学生手册家长评语
2014/02/10 职场文书
营销学习心得体会
2014/09/12 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
2014年小学工作总结
2014/11/26 职场文书
支教个人总结
2015/03/04 职场文书
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL