用PHP读取RSS feed的代码

2015-01-24信息快讯网

由于需要读取不同来源的rss feed,写了一个php程序来循环读取rss feed,为了方便阅读及了解程序实现过程,加上了注释,和大家共同学习。

而助易网的rss读取就是在这个程序的基础上稍做改造而成,主
要是输出了一个数组字符串以及解决编码问题。

php源代码及代码详细解释如下:

<?php
//RSS源地址列表数组
$rssfeed = array("http://www.jb51.net/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读取RSS(Feed)简单实例
mysql下创建字段并设置主键的php代码
php带密码功能并下载远程文件保存本地指定目录 修改加强版
ezSQL PHP数据库操作类库
php 提速工具eAccelerator 配置参数详解
php date()日期时间函数详解
php access 数据连接与读取保存编辑数据的实现代码
php disk_free_space 返回目录可用空间
php读取javascript设置的cookies的代码
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
用PHP实现读取和编写XML DOM代码
php5 non-thread-safe和thread-safe这两个版本的区别分析
PHP调用Twitter的RSS的实现代码
PHP clearstatcache()函数详解
php 读取shell管道传输过来的内容
php htmlspecialchars加强版
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
PHP parse_url 一个好用的函数
php 无限级 SelectTree 类
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
sourcesafe管理phpproj文件的补充说明(downmoon)
PHP伪造referer实例代码
php自动适应范围的分页代码
IStream与TStream之间的相互转换
特详细的PHPMYADMIN简明安装教程
phpmyadmin的安装与使用图文教程第1/2页
php-accelerator网站加速PHP缓冲的方法
说明的比较细的php 正则学习实例
php自动跳转中英文页面
效率较高的php下读取文本文件的代码 原创
用PHP伪造referer突破网盘禁止外连的代码
PHP读取MySQL数据代码
php中对xml读取的相关函数的介绍一
php读取数据库信息的几种方法
在PHP中读取和写入WORD文档的代码
php中ob(Output Buffer 输出缓冲)函数使用方法
利用PHP和AJAX创建RSS聚合器的代码
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Breeze 文章管理系统 v1.0.0正式发布
PHP3 safe_mode 失效漏洞
©2014-2024 dbsqp.com