用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下对字符串的递增运算代码
Aug 21 PHP
php通用防注入程序 推荐
Feb 26 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
php验证session无效的解决方法
Nov 04 PHP
php文件夹的创建与删除方法
Jan 24 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
PHP实现链式操作的三种方法详解
Nov 16 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简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
PDO::errorInfo讲解
2019/01/28 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
Vue 进阶教程之v-model详解
2017/05/06 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
angularJS开发注意事项
2018/05/26 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
python字典序问题实例
2014/09/26 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
pytorch实现查看当前学习率
2020/06/24 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
请假条范文大全
2014/04/10 职场文书
与美同行演讲稿
2014/09/13 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书