PHP读取RSS(Feed)简单实例
最近在弄博客,但各种博客间同步比较麻烦,好在每一个博客都有自己的RSS聚合系统,可以通过RSS实现博客同步调用,于是自己动手用RSS实现博客同步发布,在其中就研究一下PHP读RSS。
RSS是用XML来书写的,XML是一种数据存储格式。PHP读取XML数据有三种方法:用XML解析函数、DOM模块和正则表达式,最直接地就是直接解析XML,获取XML中的数据。
以下是解析代码:
<?php error_reporting(E_ALL^E_NOTICE);
$rssfeed="feed.xml"; header('Content-Type:text/html;charset=UTF-8');
$buff=""; //打开rss地址,并读取 $fp=fopen($rssfeed,"r")ordie("cannotopen$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($valuesas$val){ $tag=$val["tag"]; $type=$val["type"]; $value=$val["value"]; //标签统一转为小写 $tag=strtolower($tag);
if($tag=="item"&&$type=="open"){ $is_item=1; }elseif($tag=="item"&&$type=="close"){ //构造输出字符串 echo"<ahref="".$link.""target="_blank">".$title."</a> "; //echo$content." "; $is_item=0; } //仅读取item标签中的内容 if($is_item==1){ if($tag=="title"){$title=$value;} if($tag=="link"){$link=$value;} if($tag=="content:encoded"){$content=$value;} } } ?>