PHP讀取RSS feed源代碼(帶注釋,可讀取多個源)_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:PHP開發(fā)大型項目的方法:OOP思想面向?qū)ο缶幊痰母拍睿? 不同的作者之間說法可能不一樣,但是一個OOP語言必須有以下幾方面: 抽象數(shù)據(jù)類型和信息封裝、繼承、多態(tài) 在PHP中是通過類來完成封裝的: 代碼:
因為網(wǎng)站需要讀取不同來源的rss feed,寫了一個php程序來循環(huán)讀取rss feed,為了方便閱讀及了解程序?qū)崿F(xiàn)過程,加上了注釋,和大家共同學(xué)習(xí)。而助易網(wǎng)的rss讀取就是在這個程序的基礎(chǔ)上稍做改造而成,主要是輸出了一個數(shù)組字符串以及解決編碼問題。
php源代碼及代碼詳細解釋如下:
<?php
//RSS源地址列表數(shù)組 $rssfeed = array("http://www.hl5o.cn/rss.php", "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"); //設(shè)置編碼為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); } //關(guān)閉文件打開 fclose($fp); //建立一個 XML 解析器 $parser = xml_parser_create(); //xml_parser_set_option -- 為指定 XML 解析進行選項設(shè)置 xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); //xml_parse_into_struct -- 將 XML 數(shù)據(jù)解析到數(shù)組$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"]; //標(biāo)簽統(tǒng)一轉(zhuǎn)為小寫 $tag = strtolower($tag); if ($tag == "item" && $type == "open"){ $is_item = 1; }else if ($tag == "item" && $type == "close") { //構(gòu)造輸出字符串 $rss_str .= "<a href='".$link."' target=_blank>".$title."</a><br />"; $is_item = 0; } //僅讀取item標(biāo)簽中的內(nèi)容 if($is_item==1){ if ($tag == "title") {$title = $value;} if ($tag == "link") {$link = $value;} } } //輸出結(jié)果 echo $rss_str."<br />"; } ?> |
原文鏈接:http://www.blog-dragon.com/2008/07/php-read-rssfeed.html
分享:動態(tài)網(wǎng)頁制作PHP常用的正則表達式匹配中文字符的正則表達式: [u4e00-u9fa5] 匹配雙字節(jié)字符(包括漢字在內(nèi)): [^
相關(guān)PHP教程:
- 相關(guān)鏈接:
- 教程說明:
PHP教程-PHP讀取RSS feed源代碼(帶注釋,可讀取多個源)
。