PHP讀取RSS(Feed)簡(jiǎn)單實(shí)例
最近在弄博客,但各種博客間同步比較麻煩,好在每一個(gè)博客都有自己的RSS聚合系統(tǒng),可以通過(guò)RSS實(shí)現(xiàn)博客同步調(diào)用,于是自己動(dòng)手用RSS實(shí)現(xiàn)博客同步發(fā)布,在其中就研究一下PHP讀RSS。
RSS是用XML來(lái)書(shū)寫(xiě)的,XML 是一種數(shù)據(jù)存儲(chǔ)格式。PHP讀取XML數(shù)據(jù)有三種方法:用XML解析函數(shù)、DOM模塊和正則表達(dá)式,最直接地就是直接解析XML,獲取XML中的數(shù)據(jù)。
以下是解析代碼:
<?php
error_reporting(E_ALL^E_NOTICE);
$rssfeed = "feed.xml";
header('Content-Type:text/html;charset= UTF-8');
$buff = "";
//打開(kāi)rss地址,并讀取
$fp = fopen($rssfeed,"r") or die("can not open $rssfeed");
while ( !feof($fp) ) {
$buff .= fgets($fp,4096);
}
//關(guān)閉文件
fclose($fp);
//建立一個(gè) XML 解析器
$parser = xml_parser_create();
//xml_parser_set_option -- 為指定 XML 解析進(jìn)行選項(xiàng)設(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)為小寫(xiě)
$tag = strtolower($tag);
if ($tag == "item" && $type == "open"){
$is_item = 1;
}else if ($tag == "item" && $type == "close") {
//構(gòu)造輸出字符串
echo "<a href="".$link."" target="_blank">".$title."</a>
";
//echo $content."
";
$is_item = 0;
}
//僅讀取item標(biāo)簽中的內(nèi)容
if($is_item==1){
if ($tag == "title") {$title = $value;}
if ($tag == "link") {$link = $value;}
if ($tag =="content:encoded"){$content=$value;}
}
}
?>
以下是用該程序讀取feed的效果:
相關(guān)文章
PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(三)
這篇文章主要介紹了PHP網(wǎng)頁(yè)游戲Xnova(ogame)源碼解讀的用戶注冊(cè)頁(yè)面,需要的朋友可以參考下2014-06-06PHP調(diào)用API接口實(shí)現(xiàn)天氣查詢功能的示例
下面小編就為大家?guī)?lái)一篇PHP調(diào)用API接口實(shí)現(xiàn)天氣查詢功能的示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09使用Yii2實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)設(shè)置
大家應(yīng)該都知道,當(dāng)項(xiàng)目做大了,數(shù)據(jù)庫(kù)主從還是不可少的。使用Yii框架開(kāi)發(fā),如何設(shè)置數(shù)據(jù)庫(kù)的主從呢?其實(shí)很簡(jiǎn)單。下面這篇文章就給大家詳細(xì)介紹了使用Yii2實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)設(shè)置的方法,文中介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)很有幫助,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11php 生成靜態(tài)頁(yè)面的辦法與實(shí)現(xiàn)代碼詳細(xì)版
首先說(shuō)原理。查了那么多資料,發(fā)現(xiàn)不管用什么方法,原理都是一樣的。就是用程序讀取相應(yīng)的數(shù)據(jù)來(lái)替換模版中的變量,然后生成靜態(tài)頁(yè)。2010-02-02PHP網(wǎng)頁(yè)安全認(rèn)證的實(shí)例詳解
這篇文章主要介紹了PHP網(wǎng)頁(yè)安全認(rèn)證的實(shí)例詳解的相關(guān)資料,這里提供了兩種實(shí)現(xiàn)方法,一種基于數(shù)據(jù)庫(kù)另一種不基于數(shù)據(jù)庫(kù)的方法,希望通過(guò)本能幫助到大家,需要的朋友可以參考下2017-09-09destoon調(diào)用discuz論壇中帶圖片帖子的實(shí)現(xiàn)方法
這篇文章主要介紹了destoon調(diào)用discuz論壇中帶圖片帖子的實(shí)現(xiàn)方法,是destoon開(kāi)發(fā)中非常實(shí)用的一個(gè)技巧,需要的朋友可以參考下2014-08-08如何通過(guò)View::first使用Laravel Blade的動(dòng)態(tài)模板詳解
這篇文章主要給大家介紹了關(guān)于如何通過(guò)View::first使用Laravel Blade的動(dòng)態(tài)模板的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧。2017-09-09Laravel Memcached緩存驅(qū)動(dòng)的配置與應(yīng)用方法分析
這篇文章主要介紹了Laravel Memcached緩存驅(qū)動(dòng)的配置與應(yīng)用方法,結(jié)合實(shí)例形式分析了在Laravel框架配置Memcached緩存及相關(guān)使用方法,需要的朋友可以參考下2016-10-10