用PHP读取RSS feed的代码

5年以前  |  阅读数:972 次  |  编程语言:PHP 

而助易网的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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例