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基础知识:类与对象(3) 构造函数和析构函数
Dec 13 PHP
array_multisort实现PHP多维数组排序示例讲解
Jan 04 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
php魔术变量用法实例详解
Nov 13 PHP
基于PHP实现的事件机制实例分析
Jun 18 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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
用户的详细注册和判断
2006/10/09 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
详解php用static方法的原因
2018/09/12 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
react路由配置方式详解
2017/08/07 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
python刷投票的脚本实现代码
2014/11/08 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
python 从list中随机取值的方法
2020/11/16 Python
如何提高MySql的安全性
2014/06/19 面试题
公司清洁工岗位职责
2013/12/14 职场文书
环境科学专业求职信
2014/08/04 职场文书
任命书怎么写
2015/03/02 职场文书
《1942》观后感
2015/06/08 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers