国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

如何在PHP中使用RSS技術(shù)

2012-04-29 00:44:03明道洋李斯納
電腦知識與技術(shù) 2012年21期
關(guān)鍵詞:解析器開發(fā)人員文檔

明道洋 李斯納

摘要:RSS是一種常見的Web 2.0應(yīng)用,在PHP中比較常用的RSS解析器為MagpieRSS。該文主要探討了RSS的語法規(guī)則,MAG PIERSS解析機(jī)制、解析過程等方面的內(nèi)容。

關(guān)鍵詞:PHP;RSS;MAGPIERSS;WEB 2.0

中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)21-5072-02

RSS(簡易信息聚合,也叫聚合內(nèi)容)是一種描述和同步網(wǎng)站內(nèi)容的格式,簡單地說就是用于在網(wǎng)站間分享信息。RSS目前廣泛用于網(wǎng)上新聞?lì)l道、blog及wiki等。使用RSS訂閱能更快地獲取信息,網(wǎng)站提供RSS輸出,有利于讓用戶獲取網(wǎng)站內(nèi)容的最新更新。網(wǎng)絡(luò)用戶可以在客戶端借助于支持RSS的聚合工具軟件,在不打開網(wǎng)站內(nèi)容頁面的情況下閱讀支持RSS輸出的網(wǎng)站內(nèi)容。[1]

<b> 1 RSS語法</b>

RSS文檔使用一種簡單的自我描述的語法,下面的代碼段( example.xml )構(gòu)成了一個(gè)簡單的RSS文檔:

<xml version="1.0" encoding="ISO-8859-1" >

<rss version="2.0">

<channel>

<title>Home Page</title>

<link>http://www.bsnc.cn</link>

<description>A University Located IN Yunnan Province</description>

<item>

<title>The Institute of Physics </title>

<link>http:// www.bsnc.cn /rss</link>

<description>New RSS FROM BSNC</description>

</item>

</channel>

</rss>

代碼清單中的第一行:XML聲明,用于定義文檔中使用的XML版本和字符編碼。該例子遵守XML 1.0規(guī)范,并使用ISO-8859-1 (Latin-1/West European)字符集。下一行是標(biāo)識此文檔是一個(gè)RSS文檔的RSS聲明(這里是RSS version 2.0)。下一行含有<channel>元素,此元素用于描述RSS feed。

<channel>元素有三個(gè)必需的子元素:

<title> -定義頻道的標(biāo)題。(比如Home Page)

<link> -定義到達(dá)頻道的超鏈接。(比如http://www.bsnc.cn)

<description> -描述此頻道(A University Located In Yunnan Province)

每個(gè)<channel>元素可擁有一個(gè)或多個(gè)<item>元素。每個(gè)<item>元素可定義RSS feed中的一篇文章或"story"。<item>元素?fù)碛腥齻€(gè)必需的子元素:

<title> -定義項(xiàng)目的標(biāo)題。(比如The Institute of Physics)

<link> -定義到達(dá)項(xiàng)目的超鏈接。(比如http:// www.bsnc.cn /rss)<description> -描述此項(xiàng)目(比如New RSS FROM BSNC)

<b> 2如何在PHP中使用RSS</b>

在很多PHP語言編寫的RSS工具中,MagpieRSS是一個(gè)很突出的RSS解析器。MagpieRSS(簡稱Magpie)是由Kellan Elliott-Mc Crea使用PHP編寫的一個(gè)強(qiáng)大的RSS解析器。Magpie為開發(fā)人員提供了一種非常簡潔實(shí)用的方式來獲取和顯示RSS提要,其主要特點(diǎn)如下:

簡單易用:通過幾行簡單的代碼就能夠獲取和解析RSS提要,并轉(zhuǎn)換為網(wǎng)絡(luò)用戶容易閱讀的格式。

高度的兼容性:Magpie支持各種RSS版本中的幾乎所有標(biāo)簽集合以及開發(fā)人員自己定義的標(biāo)簽,只要格式正確,Magpie就能成功解析。

帶寬占用率低:默認(rèn)認(rèn)情況下,Magpie將提要內(nèi)容緩存為60分鐘(當(dāng)然我們可以根據(jù)實(shí)際需要修改此值,以適合各種提要的緩存首選項(xiàng)。[2]

2.1安裝Magpie

與大多數(shù)PHP類一樣,Magpie的安裝非常簡單,只需將相關(guān)的文件放在PHP腳本能夠引用的目錄中,安裝步驟如下:

1)從http://magpierss.sourceforge.net/下載Magpie。

2)將包的內(nèi)容解壓至一個(gè)便于從PHP腳本包含的位置。

3)在腳本中包含Magpie類(rss_fetch.inc):

require(magpie/rssfetch.php);

2.2 Magpie如何解析

RSS提供了一種規(guī)范化的方式,基于XML格式封裝網(wǎng)站內(nèi)容,這稱為提要(feed)。Magpie解析提要時(shí),將其放在四個(gè)字段(chan nel、image、items和textinput)的對象中。其中,channel是一個(gè)關(guān)聯(lián)數(shù)組的數(shù)組,其余三個(gè)是關(guān)聯(lián)數(shù)組。我們可以通過以下PHP腳本獲取example.xml提要,使用print_r()語句輸出:

<php

require("magpie/rss_fetch.inc");

$url="http://localhost/example.xml";

$rss=fetch_rss($url);

print_r($rss);

2.3如何顯示RSS提要

var STORE_KEY_FeedURL = "gf_FeedURL";

var STORE_KEY_FeedName = "gf_FeedName";

GF_RSS_URL= "http://answers.yahoo.com/rss/catqsid=396546051";

GF_RSS_TITLE = "Yahoo! Answers";

function gf_showRssView()

{document.getElementById("tickerView").style.display = "none";

widget.setPreferenceForKey(GF_RSS_URL, STORE_KEY_FeedURL);

widget.setPreferenceForKey(GF_RSS_TITLE, STORE_KEY_FeedName);

init(); }

把這些文件添加到你的工程,并且將下段代碼插入到你的PHP主文件中。

<style> @import url("RSSReader.css"); </style>

2.4緩存提要[3]

默認(rèn)情況下,magpie緩存60分鐘,這是因?yàn)橐话愕奶嵋惶赡芤恍r(shí)內(nèi)更新超過1次。因此,即使經(jīng)常嘗試獲取相同的提要,比如每5分鐘一次,也不會出現(xiàn)任何更新,直到提要緩存達(dá)到60分鐘為止。但有些提要確實(shí)會在一小時(shí)內(nèi)發(fā)布多次,或者可能用來發(fā)布更緊急的信息。為了完全禁用緩存,可以禁用常量MAGPIE_CACHE_ON,如下:

define ("MAGPIE_CACHE_ON",0)

為修改默認(rèn)的緩存時(shí)間(以秒為單位),可以修改常量MAGPIE_CACHE_AGE,如下:

define("MAGPIE_CACHE_AGE",1800)

最后,可以選擇在獲取失敗時(shí)顯示一個(gè)錯(cuò)誤,而不是顯示緩存的提要,這需要啟用常量MAGPIE_CACHE_FLASH_ONLY: define("MAGPIE_CACHE_FLASH_ONLY",1)

<b> 3結(jié)論</b>

使用RSS訂閱能幫助網(wǎng)絡(luò)用戶更快地獲取信息,有利于讓用戶獲取網(wǎng)站內(nèi)容的最新更新。該文對RSS的語法及PHP環(huán)境下的MagpieRSS解析器的安裝、解析機(jī)制、解析過程等方面進(jìn)行了初步的探討,希望能夠?qū)HP開發(fā)人員有一定的幫助。

參考文獻(xiàn):

[1] RSS百度百科[EB/OL].http://baike.baidu.com/view/1644.htm.

[2] MagpieRSS: RSS for PHP[EB/OL].http://magpierss.sourceforge.net/.

[3] Gilmore W J.PHP與MySQL 5程序設(shè)計(jì)[M].2版.北京:人民郵電出版社,2007.

猜你喜歡
解析器開發(fā)人員文檔
有人一聲不吭向你扔了個(gè)文檔
基于多解析器的域名隱私保護(hù)機(jī)制
基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實(shí)現(xiàn)
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
如何防御DNS陷阱?常用3種DNS欺騙手法
一種基于無關(guān)DNS的通信隱私保護(hù)技術(shù)研究
電子世界(2018年14期)2018-04-15 16:14:25
基于RI碼計(jì)算的Word復(fù)制文檔鑒別
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
讓W(xué)indows 10進(jìn)入開發(fā)者模式
電腦迷(2015年12期)2015-04-29 23:22:51
后悔了?教你隱藏開發(fā)人員選項(xiàng)
電腦愛好者(2015年6期)2015-04-03 01:20:56
南汇区| 宁武县| 墨脱县| 曲沃县| 乌鲁木齐县| 金门县| 繁昌县| 黎平县| 杭锦旗| 孟津县| 伊金霍洛旗| 江阴市| 洪湖市| 昭通市| 伊宁县| 高雄市| 河北区| 阿勒泰市| 民乐县| 中西区| 吉木萨尔县| 潼关县| 页游| 雅江县| 沙坪坝区| 开封市| 瓦房店市| 贵南县| 微山县| 灌云县| 望谟县| 阿荣旗| 洛宁县| 收藏| 巴林左旗| 花垣县| 加查县| 宁武县| 墨竹工卡县| 富蕴县| 龙川县|