用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连接MySQL代码的参数说明
Jun 07 PHP
基于MySQL到MongoDB简易对照表的详解
Jun 03 PHP
php常用hash加密函数
Nov 22 PHP
php导入模块文件分享
Mar 17 PHP
curl和libcurl的区别简介
Jul 01 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
PHP中常用的魔术方法
Apr 28 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 PHP
PHP多进程简单实例小结
Nov 09 PHP
Laravel 5+ .env环境配置文件详解
Apr 06 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
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
一些常用的Python爬虫技巧汇总
2016/09/28 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python字符串处理实例详解
2017/05/18 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
使用Python实现牛顿法求极值
2020/02/10 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
Python之Sklearn使用入门教程
2021/02/19 Python
P/Invoke是什么
2015/07/31 面试题
大专毕业生求职信
2014/07/05 职场文书
收银员岗位职责
2015/02/03 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
交通事故被告代理词
2015/05/23 职场文书
刑事附带民事代理词
2015/05/25 职场文书
安全教育第一课观后感
2015/06/17 职场文书
情况说明书怎么写
2015/10/08 职场文书