PHP编程:若何用PHP把RDF内容拔出Web站点当中(一...
应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^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函数基本还是不懂吧! 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 本文当是我的笔记啦,遇到的问题随时填充 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
页:
[1]
2