当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

4.9MagpieRss导入其他网站公开的RSS

9/17/2020 9:43:31 PM 人评论

4.9MagpieRss导入其他网站公开的RSS

4.9 MagpieRss导入其他网站公开的RSS

上一节介绍了怎么样建成RSS feed的方法,也介绍了RSS feed在完善网站服务中所起的作用,现在Google等搜索引擎也提供了登录网站RSS的服务,可以作为网站SEO(搜索引擎优化)的一个对策。

其实,RSS除了前面介绍的作用外,网站管理也可以利用其他网站的RSS来获取最新的信息,丰富本网站的内容,如图4-2所示。本节将介绍利用MagpieRss程序库来实现读取其他网站的RSS,说不定你可以利用此处介绍的技术,开发出来一个可以监视你喜欢的名人的博客程序呢,如果博客也提供了RSS的话。

alt

图4-2 接受RSS feed

本例要点

上一节介绍的FeedCreator是用于生成RSS feed的专用程序库。要读入并解析外部的RSS feed,必须需要其他的专用解析程序库。PHP提供了几种解析库,本节使用MagpieRss来解析RSS feed。

目录结构

alt

本例代码

alt

设定MagpieRss运行所必需的参数。依次为“输出的字符代码”、“超时(timeout)时间”、“缓冲有效否”、“缓冲目录”、“缓冲的有效期间”。

alt

取得RSS的URL,query信息未设定时,使用默认的URL。

alt

fetch_rss函数返回指定URL的MagpieRss对象。如果当中含有中文等多字节字符时,需要使用mb_convert_variables函数进行变换。

alt

顺序取得RSS feed中设定的记录,并以信息一览的形式显示。

alt

根据feed的版本不同,放置记录更新日期的因子会不同。这里,将记录更新日期设置为<dc>/<date>与<pubdate>中非空的因子的值。

alt

对取得的记录更新日期使用strtotime函数进行时间的转换后,再使用date函数进行“YYYY.MM.dd”形式的输出。

alt

补充

本例注意事项

本节使用的MagpieRss是外部库。使用时,需要下载必要的库,并进行相关设定。

MagpieRss的代码已经收录在随书附的光盘中了,MagpieRss不断地在进行版本升级,请注意保持最新的版本。

下载/配置FeedCreator

从以下网址下载最新的FeedCreator代码:http://sourceforge.net/project/magpierss。

解压缩下载的MagpieRss_XXX.tar.zip(XXX为版本号)后,将目录下的.inc文件以及exlib目录复制到PHP的include_path的目录下(Windows环境默认在“C:\php\includes\fpdf”,Linux环境默认在“/usr/local/lip/php/fpdf”目录中)。

提供保存缓冲的文件夹

请提供为保存取得的feed信息的文件夹。本节,在放置rss.php的目录下,建成了“cache”文件夹用于保存取得的feed信息。

MagpieRss对象的结构

使用fetch_rss函数解析出的信息保存在MagpieRss对象中。下面是MagpieRss对象的结构。

使用如下的表达式:

alt

就可以取得特定因子的值。这个例子是取得第一条记录的URL值。

但是,随着feed版本的不同,MagpieRss对象的结构会有些细微的不同。当你不能取得你想取得的值时,不妨使用pring_r($rss)命令查看一下MagpieRss对象的结构。


知识专栏:PHP的开发支援环境(一)——Aptana Studio

基本上,进行PHP应用程序构筑时并不需要特别的开发环境。记事本或Emacs这样的标准文本编辑器就可以构筑PHP应用程序了。

但是,只使用文本编辑器,在开发一定规模的应用程序时显得不方便,这是实情。这时为了提高开放效率,导入综合开发环境(IDE:Integrated Development Enviroment)是可以考虑的。用于PHP开发的IDE相对于Java或.NET等语言来说种类并不多。但是,值得采用的IDE还是存在的,Aptana Studio就是代表性的PHP的IDE。

Aptana Studio是以Eclipse为基础的开发环境。使用Aptana Studio后,可以在Eclipse上实现从PHP项目的管理到代码的编辑,调试的统一管理。本书中没有详细介绍,但是在下面的网站上有相关介绍,值得参考:

http://hi.baidu.com/babylon521/blog/item/a8e6663974649af8b211c789.html


相关教程

共有条评论 网友评论

验证码: 看不清楚?