用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 相关文章推荐
提取HTML标签
Oct 09 PHP
main.php
Dec 09 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
php文件夹的创建与删除方法
Jan 24 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 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里的单例类写法实例
2015/06/25 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
Jquery练习之表单验证实现代码
2010/12/14 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
Node.js模块加载详解
2014/08/16 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python计算IV值的示例讲解
2020/02/28 Python
python 基于wx实现音乐播放
2020/11/24 Python
简短证婚人证婚词
2014/01/09 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
小学音乐教学反思
2014/02/05 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
广告词串烧
2014/03/19 职场文书
给学校建议书范文
2014/05/13 职场文书
远程培训的心得体会
2014/09/01 职场文书
2014年财政所工作总结
2014/11/22 职场文书
优秀教师先进材料
2014/12/16 职场文书
大学生读书笔记范文
2015/07/01 职场文书
MySQL数据库简介与基本操作
2022/05/30 MySQL