用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 相关文章推荐
PHP生成带有雪花背景的验证码
Oct 09 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
php去除html标记的原生函数详解
Jan 27 PHP
php清除和销毁session的方法分析
Mar 19 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
PHP通过GD库实现验证码功能示例
Feb 23 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 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
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
Admin generator, filters and I18n
2011/10/06 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php中HTTP_REFERER函数用法实例
2014/11/21 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
详解微信小程序中组件通讯
2018/10/30 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
python thread 并发且顺序运行示例
2009/04/09 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
python画折线图的程序
2018/07/26 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
python 函数中的参数类型
2020/02/11 Python
python中列表的含义及用法
2020/05/26 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
煤矿安全生产标语
2014/06/06 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
上班离岗检讨书
2014/09/10 职场文书
单位委托书格式范本
2014/09/29 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
一个都不能少观后感
2015/06/04 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书