建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 网站开发 > PHP教程 >

PHP读取RSS feed源的代码(带注释,可读取多个源)

时间:2009-05-10 20:46来源: 作者: 点击:
因为网站需要读取不同来源的rss feed,写了一个php程序来循环读取rss feed,为了方便阅读及了解程序实现过程,加上了注释,和大家共同学习。而助易网的rss读取就是在这个程序的基础上稍做改造而成,主要是输出了一个数组字符串以及解决编码问题。

因为网站需要读取不同来源的rss feed,写了一个php程序来循环读取rss feed,为了方便阅读及了解程序实现过程,加上了注释,和大家共同学习。而助易网的rss读取就是在这个程序的基础上稍做改造而成,主要是输出了一个数组字符串以及解决编码问题。

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

  1. <?php  
  2. //RSS源地址列表数组  
  3. $rssfeed = array("http://www.jzxue.com/rss/12.xml",  
  4. "http://rss.sina.com.cn/news/allnews/sports.xml",  
  5. "http://ent.163.com/special/00031K7Q/rss_toutiao.xml",  
  6. "http://tech.163.com/special/00091JPQ/techimportant.xml");  
  7.    
  8. //设置编码为UTF-8  
  9. header('Content-Type:text/html;charset= UTF-8');       
  10.    
  11. for($i=0;$i<sizeof($rssfeed);$i++){//分解开始  
  12.     $buff = "";  
  13.     $rss_str="";  
  14.     //打开rss地址,并读取,读取失败则中止  
  15.     $fp = fopen($rssfeed[$i],"r"or die("can not open $rssfeed");   
  16.     while ( !feof($fp) ) {  
  17.         $buff .= fgets($fp,4096);  
  18.     }  
  19.     //关闭文件打开  
  20.     fclose($fp);  
  21.           
  22.     //建立一个 XML 解析器  
  23.     $parser = xml_parser_create();  
  24.     //xml_parser_set_option -- 为指定 XML 解析进行选项设置  
  25.     xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);  
  26.     //xml_parse_into_struct -- 将 XML 数据解析到数组$values中  
  27.     xml_parse_into_struct($parser,$buff,$values,$idx);  
  28.     //xml_parser_free -- 释放指定的 XML 解析器  
  29.     xml_parser_free($parser);  
  30.       
  31.     foreach ($values as $val) {  
  32.         $tag = $val["tag"];  
  33.         $type = $val["type"];  
  34.         $value = $val["value"];  
  35.         //标签统一转为小写  
  36.         $tag = strtolower($tag);  
  37.           
  38.         if ($tag == "item" && $type == "open"){  
  39.             $is_item = 1;  
  40.         }else if ($tag == "item" && $type == "close") {  
  41.             //构造输出字符串  
  42.             $rss_str .= "<a href='".$link."' target=_blank>".$title."</a><br />";  
  43.             $is_item = 0;  
  44.         }  
  45.         //仅读取item标签中的内容  
  46.         if($is_item==1){  
  47.             if ($tag == "title") {$title = $value;}          
  48.             if ($tag == "link") {$link = $value;}  
  49.         }  
  50.     }  
  51.     //输出结果  
  52.     echo $rss_str."<br />";  
  53. }  
  54. ?> 
(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片