使用百度新闻RSS
function getbaidu() { $result=""; //RSS源地址列表数组 $rssfeed = array("http://news.baidu.com/ns?word=title%3A%BD%F0%C8%DA&tn=newsrss&sr=0&cl=2&rn=10&ct=0"); //设置编码为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); $link=""; $title=""; foreach ($values as $val) { $value="" ; $tag = $val["tag"]; $type = $val["type"]; if(array_key_exists('value', $val)){ $value = $val["value"]; } //标签统一转为小写 $tag = strtolower($tag); //title 和 link if($value!="") { if ($tag == "title") {$title = $value;} if ($tag == "link") {$link = $value;} if($link=='news.baidu.com') { $link=""; } if($title=='news.baidu.com') { $title=""; } if($link=='http://news.baidu.com') { $link=""; } if($title=='http://news.baidu.com') { $title=""; } } //当两项都不为空时,输出并清空 if($title<>""&&$link<>"") { //echo "<a href='".$link."' target=_blank>".$title."</a><br />"; //$result[]=array('title'=>$title,'link'=>$link); $result.='<li><a href="'.$link.'" alt="'.$title.'" target=_blank>'.$title.'</a></li>'; $title=""; $link=""; } } //输出结果 } return $result; }