|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^web|拔出|站点 信用和伟大的财富
假想一个从最火门的门户网站取得最新的旧事的站点。股票价钱,天色信息,旧事故事,线式会商组,软件宣布……一切这一切都将主动态更新,每小时一次,不需求任何手工干涉。咱们可以想象这随之而来的站点会见量,源源不休的告白支出和网管大人所遭到的“攀龙趋凤”。
然而如今,中断梦想,入手下手浏览,由于只需你亲切存眷此项手艺,说不定你就可以成为站点的主人。 对你的请求也只是稍许的想象力,一些伶俐的PHP编码和几个收费的RSS文件。别的,很分明还包含这篇文章剩下的九个局部。
有内容,就结合成辛迪加(Have Content, Will Syndicate)
咱们从最根基的入手下手――那末RSS事实是甚么鬼器材呢?
RSS(即RDF Site Summary)是一种格局,最早由Netscape公司设计,用于分发其门户站点My.Netscape.Com上的内容的描写信息。自1997年被提出以来,几经沉浮――可以点击文章末尾的链接,懂得一下RSS悠长庞杂的汗青。如今的不乱的版本是RSS1.0,合适RDF标准。这一版本可以说即笨重又功效完全。
RSS使得网管实时发布和分发某一特定站点的特定地位的最新最风趣的内容的描写信息变的能够。 重新闻文章列表到股票市场数据或着是天色预告,一切这些信息都可以经由过程布局优秀的XML文档来宣布,从而也能够被任何XML剖析器停止剖析,处置和翻译。
网站上最新信息的列表是常常更新的,而RSS使得这一列表的分发成为能够,也就为Web上简略单纯的内容辛迪加结合翻开了大门。想懂得这个中的事理,请看上面这个复杂的例子:
站点A,属旧事站点(“内容辛迪加组织者”),可以每小时宣布一个包括最新旧事列表和响应链接的RSS文档。 而这一RSS文档可以被其它站点获得(如站点B,“内容搜集者”),剖析并显示在站点B的索引页面上。 每次站点A宣布一个新的RSS文档,站点B的索引页面都可以主动更新,以获得最新的旧事。
这类计划对买卖中的两边机构都无效。 既然RSS文档中的链接都指向站点A上响应的文章,那末站点A将敏捷体验到会见量的增添。 而站点B的网管可以休假一个礼拜,由于他有举措主动更新其站点上的索引页面,而这一办法仅仅是把索引页面与站点A宣布的静态内容相毗连罢了。
有很多受接待的站点向"大众供应具体的RSS或RDF旧事,如Freshmeat(http://www.freshmeat.net)和Slashdot(http://www.slashdot.org),固然还有其它很多站点。在这篇文章傍边,我将普遍的利用Freshmeat网站的RDF文件。需求申明的一点是,这里所谈到的手艺也能够使用于其它任何RSS1.0或RDF文件。
互换频道(Switching Channels)
典范的RSS文档包括一个由描写性元数据标志出来的资本列表(URLs),请看上面的例子:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/">
<channel rdf:about="http://www.melonfire.com/">
<title>Trog</title>
<description>Well-written technical articles and
tutorials on Web technologies</description>
<link>http://www.melonfire.com/community/columns/trog/</link>
<items>
<rdf:Seq>
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=100" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=71" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=62" />
</rdf:Seq>
</items>
</channel>
<item
rdf:about="http://www.melonfire.com/community/columns/trog/article.php?i
d=10
0">
<title>Building A PHP-Based Mail Client (part 1)</title>
<link>http://www.melonfire.com/community/columns/trog/article.php?id=100
</li
nk>
<description>Ever wondered how Web-based mail clients
work? Find out here.</description>
</item>
<item
rdf:about="http://www.melonfire.com/community/columns/trog/article.php?i
d=71">
<title>Using PHP With XML (part 1)</title>
<link>http://www.melonfire.com/community/columns/trog/article.php?id=71<
/link>
<description>Use PHP's SAX parser to parse XML data and
generate HTML pages.</description>
</item>
<item
rdf:about="http://www.melonfire.com/community/columns/trog/article.php?i
d=62">
<title>Access Granted</title>
<link>http://www.melonfire.com/community/columns/trog/article.php?id=62<
/link>
<description>Precisely control access to information
with the mySQL grant tables.</description>
</item>
你可以看到,RDF文件由几个界线清楚的局部构成。起首是文档序码(prolog),
<?xml version="1.0" encoding="UTF-8"?>
然后是根元素中的称号空间声明。
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/">
接着是<channel>局部,这局部包括了RDF所要描写的频道的普通信息。在下面的例子中,频道是Melonfire网站的Trog专栏,专栏内容是新的手艺文章和指南,每礼拜更新一次。
<channel rdf:about="http://www.melonfire.com/">
<title>Trog</title>
<description>Well-written technical articles and
tutorials on Web technologies</description>
<link>http://www.melonfire.com/community/columns/trog/</link>
<items>
<rdf:Seq>
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=100" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=71" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=62" />
</rdf:Seq>
</items>
</channel>
<channel>区包括了一个<items>区块,<items>区块又包括了文档中描写的一切资本的一个按次列表。该列表经由过程一系列的<li />元从来暗示。区块中每个资本都在前面的<item>区块中有更具体的描写。
<items>
<rdf:Seq>
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=100" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=71" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=62" />
</rdf:Seq>
</items>
还可以在个中放置一个<image>区块,如许你就能够宣布频道标记的URL。
所觉得了肉,RSS1.0文档中的每个<item>区块都更具体地描写一个独自的资本,包含题目,URL和资本描写。
<items>
<rdf:Seq>
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=100" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=71" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=62" />
</rdf:Seq>
</items>
在这个例子里,<item>区块描写了Ttrog“频道”中独自的一篇文章,并为这篇文章供应了描写和题目,和URL。内容搜集者可以使用URL创立“向后”链接。
你看失掉,RSS1.0文件相外地直不雅了然,不论是手工,仍是经由过程编程,都十分轻易创立。下面的例子息争释仅仅是申明性质的,凡是,你可以用RSS1.0和RDF做更多的工作。你最悦目一下文章末尾供应的链接,以获得更多的信息。不外在这之前,咱们再花几分钟会商一若何将RSS1.0文档拔出到你本人的Web站点当中。
也或许是因为我还没有真正的学到深处吧,说实在的,PHP中的很多高级点的应用,如PHP类、PHP函数基本还是不懂吧! |
|