用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 相关文章推荐
网站当前的在线人数
Oct 09 PHP
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
Sep 30 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
php简单判断两个字符串是否相等的方法
Jul 13 PHP
PHP实现的进度条效果详解
May 03 PHP
PHP+Ajax+JS实现多图上传
May 07 PHP
php Session无效分析资料整理
Nov 29 PHP
php插入mysql数据返回id的方法
May 31 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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代码包装修正版
2008/03/15 PHP
php 删除无限级目录与文件代码共享
2008/11/22 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
laravel请求参数校验方法
2019/10/10 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
python判断字符串或者集合是否为空的实例
2019/01/23 Python
python添加菜单图文讲解
2019/06/04 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
python 实现批量图片识别并翻译
2020/11/02 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
岗位职责的构建方法
2014/02/01 职场文书
请假条的格式
2014/04/11 职场文书
考核评语大全
2014/04/29 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
工作失职检讨书范文
2015/05/05 职场文书
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL