使用SimplePie在您的网站上显示RSS和Atom Feed

使用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链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏