用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 相关文章推荐
mysql中存储过程、函数的一些问题
Feb 14 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
PHP数组和explode函数示例总结
May 08 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
PHP与Web页面的交互示例详解二
Aug 04 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 Smarty生成EXCEL文档的代码
2008/08/23 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
js 创建书签小工具之理论
2011/02/25 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
如何用itertools解决无序排列组合的问题
2017/05/18 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
详解python datetime模块
2020/08/17 Python
django中ImageField的使用详解
2020/12/21 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
事业单位鉴定材料
2014/05/25 职场文书
小升初自荐信范文
2015/03/05 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android