用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版(4)
Oct 09 PHP
PHP新手上路(十一)
Oct 09 PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
基于initPHP的框架介绍
Apr 18 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
php检测网页是否被百度收录的函数代码
Oct 09 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 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二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
python uuid模块使用实例
2015/04/08 Python
python创建关联数组(字典)的方法
2015/05/04 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
python读取Excel实例详解
2018/08/17 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
生日宴会答谢词
2014/01/09 职场文书
法学个人求职信范文
2014/01/27 职场文书
共产党员承诺书
2014/03/25 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
学生党员检讨书范文
2014/12/27 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python
pycharm无法安装cv2模块问题
2022/05/20 Python