用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异常处理技术,顶级异常处理器
Jun 13 PHP
PHP无限分类(树形类)
Sep 28 PHP
php获得url参数中具有&amp;的值的方法
Mar 05 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
PHP中header用法小结
May 23 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 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 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
php中的依赖注入实例详解
2019/08/14 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python向图片里添加文字
2019/11/26 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
学校联谊活动方案
2014/02/15 职场文书
党务公开方案
2014/05/06 职场文书
体育教师求职信
2014/05/24 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
五一晚会主持词
2015/07/01 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
apache ftpserver搭建ftp服务器
2022/05/20 Servers