用PHP读取RSS feed的代码


Posted in PHP onAugust 01, 2008

而助易网的rss读取就是在这个程序的基础上稍做改造而成,主
要是输出了一个数组字符串以及解决编码问题。

php源代码及代码详细解释如下:

<?php
//RSS源地址列表数组
$rssfeed = array("https://3water.com/feed",
"http://rss.sina.com.cn/news/allnews/sports.xml",
"http://ent.163.com/special/00031K7Q/rss_toutiao.xml",
"http://tech.163.com/special/00091JPQ/techimportant.xml");

//设置编码为UTF-8
header('Content-Type:text/html;charset= UTF-8');     

for($i=0;$i<sizeof($rssfeed);$i++){//分解开始
    $buff = "";
    $rss_str="";
    //打开rss地址,并读取,读取失败则中止
    $fp = fopen($rssfeed[$i],"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") {
            //构造输出字符串
            $rss_str .= "<a href='".$link."' target=_blank>".$title."</a><br />";
            $is_item = 0;
        }
        //仅读取item标签中的内容
        if($is_item==1){
            if ($tag == "title") {$title = $value;}        
            if ($tag == "link") {$link = $value;}
        }
    }
    //输出结果
    echo $rss_str."<br />";
}
?>

PHP 相关文章推荐
做一个有下拉功能的留言版
Oct 09 PHP
dedecms系统常用术语汇总
Apr 03 PHP
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
php的一个简单加密解密代码
Jan 14 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
PHP接口继承及接口多继承原理与实现方法详解
Oct 18 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
Dec 07 PHP
IStream与TStream之间的相互转换
Aug 01 #PHP
特详细的PHPMYADMIN简明安装教程
Aug 01 #PHP
php-accelerator网站加速PHP缓冲的方法
Jul 30 #PHP
新安装的MySQL数据库需要注意的安全知识
Jul 30 #PHP
说明的比较细的php 正则学习实例
Jul 30 #PHP
MySql中正则表达式的使用方法描述
Jul 30 #PHP
php自动跳转中英文页面
Jul 29 #PHP
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
开源SNS系统-ThinkSNS
2008/05/18 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
JS修改css样式style浅谈
2013/05/06 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
python如何定义带参数的装饰器
2018/03/20 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
python实现图片彩色转化为素描
2019/01/15 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
pytorch 修改预训练model实例
2020/01/18 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
新电JAVA笔试题目
2014/08/31 面试题
Java软件工程师综合面试题笔试题
2013/09/08 面试题
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
诚信考试标语
2014/06/24 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
劳模事迹材料范文
2014/12/24 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
openstack中的rpc远程调用的方法
2021/07/09 Python
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers