正如前面所解释的,Web Feed目前存在很多不同的格式标准。幸而,已经有很多工具可以用来跟踪喜欢的Feed。这些工具可以让您完全忘记标准之争。但是,当需要程序化阅读并解释外部Feed用于联合时,就会发现事情的复杂性。
幸而,Skyzyx Technologies已经开发了PHP库SimplePie,让编程人员从这些细节中摆脱出来,并提供了一个通用的API,用于所有的Feed类型和变种。他们说:“SimplePie是一个速度很快并且易于使用的类,用PHP写成,用于阅读RSS和Atom联合Feed。为了保持它的简单性,并且针对重要因素,我们创建了一个相当小巧好用的API。SimplePie的重点在于两个方面:速度和易用,这两个方面都做得非常成功。”
http://simplepie.org/docs/installation/getting-started/可以找到安装包,在http://simplepie.org/docs/installation/from-scratch/可以找到指南。
下面在一个快速示例中使用SimplePie。示例将使用SimplePie构建一个页面。来读取刚才创建的Feed。并且显示给访问者。
使用SimplePie读取Feed
(1)为了能正常工作,SimplePie需要一些库。如果在第一章已经准备好了Apache和PHP,那么应该已经安装并启用了所有必要的库,除了cURL。为了启用cURL,需要打开php.ini配置文件,删除下列行前面的分号以取消注释。然后,还需要重新启动Apache服务器。
extension=php_curl.dll
(2)从http://simplepie.org/downloads/下载SimplePie压缩包。
(3)SimplePie对开发人员非常友好。除了出色的文档之外,它还提供了一个脚本用于检测您的PHP安装是否支持SimplePie。从下载的压缩包中复制sp_compatiliby_test.php到seophp文件夹。然后,在WEB浏览器中加载sp_compatibility_test.php将会得到一些有用信息。
(4)在seophp文件夹中创建文件夹cache。这个seophp/cache文件夹将被SimplePie用于缓存目的。
(5)在seophp文件夹中创建新文件read_feed.php,然后键入如下代码:
<?php
require_once 'include/simplepie.inc';
$feed=new SimplePie();
$feed->feed_url('http://seophp.example.com/feed.php');
$feed->cache_location('cache');
$feed->init();
$feed->handle_content_type();
?>
<?php
if($feed->data){
echo '<h1>'.'<a href="'$feed->get_feed_link().'">'.$feed->get_feed_title().'</a></h1>';
$max=$feed->get_item_quantity(5);
for($x=0;$x<$max;$x++)
{
$item=$feed->get_item($x);
echo '<h2><a href=".$item->get_permalink().'">'.$feed->get_title().'</a></h2>';
echo '<p>'.$item->get_description().'</p>';
}
}
?>
(6)这么快就搞定!使用了SimplePie,从外部Feed读取数据实在太简单了。在这里充分地利用了OOP的优势,整个SimplePie库都基于类SimplePie,您所要做的就是创建这个类的对象,然后使用合适的方法:
<?php
require_once 'include/simplepie.inc';
$feed=new simplepie();
$feed->feed_url('http://seophp.example.com/feed.php');
$feed->cache_location('cache');
$feed->init();
$feed->headle_content_type();
?>