使用SimplePie在您的网站上显示RSS和Atom订阅源
版本1.0
作者:Falko Timme
SimplePie是一个可以抓取,缓存,解析和归一化RSS和Atom订阅源的PHP库。 它允许您在您自己的网站上显示RSS或Atom订阅源网站的最新文章。 这是向您的网站添加新的,新鲜的和相关信息的好方法。 本指南显示了如何为自己的网站进行设置。
本文档不附带任何形式的保证! 我不会保证这将为您工作!
1初步说明
本教程假设您具有对服务器的shell访问权限。 如果没有,您也可以在FTP客户端的帮助下轻松完成所有步骤。
我在这里使用Apache2 Web服务器(Debian Etch),其中已经安装了PHP5。 如果您仍然需要在服务器上设置Apache和PHP,可以参考相关“完美服务器”或“完美安装”教程的Apache部分,以便在youcl上进行分发(使用搜索功能查找该教程) 。
在Debian Etch上,该命令将使用PHP5设置Apache2:
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
我正在使用www.example.com
网站,其中包含文件根/ var / www / web1 / web
; 该网站属于用户web1_falko
和组web1
。
SimplePie的要求列在http://simplepie.org/wiki/setup/requirements上 。 要检查您的服务器是否满足要求,请创建一个phpinfo()
文件:
vi /var/www/web1/web/info.php
<?php phpinfo(); ?> |
在浏览器( http://www.example.com/info.php
)中调用该文件,并检查是否启用了所有必需的PHP模块(XML,PCRE,mbstring,cURL,Zlib):
2 SimplePie设置
我想在我的文档根/ var / www / web1 / web的
子目录中设置SimplePie
,名为simplepie
,所以我创建如下(连同SimplePie缓存提要所需的缓存目录):
mkdir /var/www/web1/web/simplepie
mkdir /var/www/web1/web/simplepie/cache
然后我更改了simplepie目录及其子目录的所有权,并使缓存
目录成为世界可写的:
cd /var/www/web1/web/
chown -R web1_falko:web1 simplepie/
chmod 777 simplepie/cache/
接下来我将SimplePie下载到/ var / www / web1
目录(请确保您从http://simplepie.org/downloads/?download获取最新版本):
cd /var/www/web1
wget http://simplepie.org/downloads/simplepie_1.1.1.zip
要解压缩,我们需要解压缩工具。 如果没有安装,现在就安装它(在Debian / Ubuntu上,你可以这样做:
apt-get install unzip
)
现在让我们解压缩SimplePie并将包的内容移到我们的/ var / www / web1 / web / simplepie
目录中:
unzip simplepie_1.1.1.zip
cd SimplePie\ 1.1.1/
mv simplepie.inc /var/www/web1/web/simplepie/
mv compatibility_test/ /var/www/web1/web/simplepie/
mv demo/ /var/www/web1/web/simplepie/
mv idn/ /var/www/web1/web/simplepie/
chown -R web1_falko:web1 /var/www/web1/web/simplepie/
chmod 777 /var/www/web1/web/simplepie/demo/cache
compatibility_test
目录包含一个测试,以检查您的服务器是否满足所有要求 - 基本上我们已经在第1章中已经完成了phpinfo()
函数。
演示
目录包含一个工作的SimplePie演示(它使用自己的缓存目录,因此我们必须使这个世界可写)。
我们实际需要运行SimplePie的唯一文件是simplepie.inc
- 这是SimplePie库。
我们先删除SimplePie目录和zip文件,以清理我们的系统:
cd ..
rm -fr SimplePie\ 1.1.1/
rm -f simplepie_1.1.1.zip
SimplePie现在已经建立并准备好使用了。
3 SimplePie Testrun
将您的浏览器引导
至http://www.example.com/simplepie/demo/
。 你应该看到SimplePie演示。 在页面底部有一个链接,说明SimplePie兼容性测试
( http://www.example.com/simplepie/compatibility_test/sp_compatibility_test.php
) - 点击该链接:
测试显示是否满足所有要求:
我们回到http://www.example.com/simplepie/demo/
并填写一个Feed的URL(例如 ):
在下一页SimplePie显示该feed:
4编写您自己的PHP脚本以在您的网站上显示RSS / Atom订阅源
http://simplepie.org/wiki/setup/sample_page有一些示例PHP脚本,用于在您的网站上显示RSS提要。 我在这里使用第一个并创建文件/var/www/web1/web/feedreader.php
:
vi /var/www/web1/web/feedreader.php
我必须修改该脚本,因为我必须设置正确的缓存位置(通过将它添加到$ feed = new SimplePie()
构造函数),因此脚本如下所示:
<?php // Make sure SimplePie is included. You may need to change this to match the location of simplepie.inc. require_once('simplepie/simplepie.inc'); // We'll process this feed with all of the default options. $feed = new SimplePie('https://www.youcl.com/feed.rss/', $_SERVER['DOCUMENT_ROOT'] . '/simplepie/cache'); // This makes sure that the content is sent to the browser as text/html and the UTF-8 character set (since we didn't change it). $feed->handle_content_type(); // Let's begin our XHTML webpage code. The DOCTYPE is supposed to be the very first thing, so we'll keep it on the same line as the closing-PHP tag. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Sample SimplePie Page</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <div class="header"> <h1><a href="<?php echo $feed->get_permalink(); ?>"><?php echo $feed->get_title(); ?></a></h1> <p><?php echo $feed->get_description(); ?></p> </div> <?php /* Here, we'll loop through all of the items in the feed, and $item represents the current item in the loop. */ foreach ($feed->get_items() as $item): ?> <div class="item"> <h2><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h2> <p><?php echo $item->get_description(); ?></p> <p><small>Posted on <?php echo $item->get_date('j F Y | g:i a'); ?></small></p> </div> <?php endforeach; ?> </body> </html> |
让我们在浏览器中调用该脚本( http://www.example.com/feedreader.php
),输出应该如下所示:
现在您可以修改脚本或编写自己的脚本。 您可以在这里找到SimplePie函数参考: http : //simplepie.org/wiki/reference/start
几个SimplePie教程可以在http://simplepie.org/wiki/tutorial/start上找到 。
5链接
- SimplePie: http : //simplepie.org