用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 相关文章推荐
通过ODBC连接的SQL SERVER实例
Oct 09 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
PHP中设置时区,记录日志文件的实现代码
Jan 07 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
php生成二维码
Aug 10 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
PHP设计模式之工厂模式与单例模式
Sep 28 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
PHP7 整型处理机制修改
Mar 09 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
人大复印资料处理程序_输入篇
2006/10/09 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
数控专业毕业生求职信范文
2013/09/21 职场文书
学生个人的自我评价分享
2013/11/05 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
《自然之道》教学反思
2014/02/11 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
行政主管职责范本
2014/03/07 职场文书
元旦活动感言
2014/03/08 职场文书
建筑工地标语
2014/06/18 职场文书
工作总结与自我评价
2014/09/18 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
围城读书笔记
2015/06/26 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python