RSS订阅 让你的博客集成RSS功能

如今Web编程的门槛变低了,越来越多的人想手写一个博客(例如本博客就是自己写的),因为这样不仅是对自己的一项锻炼。另外,用着自己写的东西,心里还是蛮舒服的
自己写的博客功能上刚开始会很弱的,比如说高扩展性,主题多变性,稳定性,更新升级便捷性等。不过,只要自己慢慢的去完善这些功能。也许哪一天,你的博客可以超越wordpress也不是不可能的。
这些功能中,有一个比较重要的叫做RSS订阅的功能,他被应用在网站信息采集和各种各样的RSS阅读器中。在你的博客中加入RSS的功能,别人就可以很方便的看到你的博客的更新状态。RSS更是和其他系统交互的一种手段。比如,现在的sina微博,QQ邮箱的阅读空间等,你可以绑定你的博客地址,然后sina/QQ的系统会定期查看的你的RSS有没有更新,如果更新了,那么会将你的博客的标题和网址作为一条微博发出来,免去了自己发送的麻烦。

OK,下边我们开始介绍RSS。

RSS 聚合是最常见的 TLA(三字母缩写词)之一。RSS 作为缩写词具有多种含义,但是当前的标准含义是:真正简单的聚合。这是对这一极为常见、极为有用的标准的最新解释。

回想 Internet 早期,一个称为 Pointcast 的软件将数据 推送到用户计算机上的屏幕保护应用程序上,来提供各种新闻更新。最终,浏览器开发商(例如 Netscape 和 Microsoft)创建了类似这种非常流行的服务的东西。Netscape 开发了接受程度最高的变体,此变体后来被发布到 Internet 开发环境中,并最终发展成了现在的 RSS。

RSS 将最近更新的信息分发给许多接收者,非常类似广播系统。如果您拥有大量的用户,那么 RSS 提要就像灯塔一样吸引您的用户回来查看更新。因为 RSS 提供了一种急需的维持用户注意力的方法,所以 RSS 越来越流行并为越来越多的内容提供者所使用就没什么好奇怪了。

RSS实际上就是一种标准 的xml格式的文档输出,任何动态的语言只要输出该种格式的文件就可以被RSS阅读器采集。

RSS的标准格式如下:

<?xml version="1.0"?>
<rss version="2.0">

  <channel>
    <title>Liftoff News</title>
    <link>http://liftoff.msfc.nasa.gov/</link>
    <description>Liftoff to Space Exploration.</description>
    <language>en-us</language>
    <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
    <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>Weblog Editor 2.0</generator>
    <managingEditor>editor@example.com</managingEditor>
    <webMaster>webmaster@example.com</webMaster>
 
    <item>
      <title>Star City</title>
      <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
      <description>How do Americans get ready to work with Russians aboard the
        International Space Station? They take a crash course in culture, language
        and protocol at Russia's Star City.</description>
      <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
      <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
    </item>
  

</channel>

</rss>

标准格式的介绍一下:

XML 格式的文档的第一个子对象是 <channel></channel>的定义。通道就是提要自身及其相关信息。许多 RSS 提要具有一个通道对象,但是如果您希望使用任意过滤器分离提要,您就可以使用多个通道。通道对象需要 titlelink和 description对象。它们定义了提要的基本描述信息。可选对象是:languagecopyrightmanagingEditorwebMasterpubDatelastBuildDatecategorygeneratordocscloudttlimageratingtextInputskipHours和 skipDays,通道能够包含的项目数量不受限制。

ITEM 元素的全部元素都是可选的,然而,至少需要一个标题或描述来验证元素。这些元素是:titlelinkdescriptionauthorcategorycommentsenclosureguidepubDatesource

只要是一种动态的语言输出该种格式的文档就可以了。

一个PHP的例子如下:

<?php
    $database =  "nameofthedatabase";
    $dbconnect = mysql_pconnect(localhost, dbuser, dbpassword);
    mysql_select_db($database, $dbconnect);
    $query = "select link, headline, description from `headlines` limit 15";
    $result = mysql_query($query, $dbconnect);
    while ($line = mysql_fetch_assoc($result)){
        $return[] = $line;
    }
    $now = date("D, d M Y H:i:s T");
    $output = "<?xml version=\"1.0\"?>
            <rss version=\"2.0\">
                <channel>
                    <title>Our Demo RSS</title>
                    <link>http://www.tracypeterson.com/RSS/RSS.php</link>
                    <description>A Test RSS</description>
                    <language>en-us</language>
                    <pubDate>$now</pubDate>
                    <lastBuildDate>$now</lastBuildDate>
                    <docs>http://someurl.com</docs>
                    <managingEditor>you@youremail.com</managingEditor>
                    <webMaster>you@youremail.com</webMaster>";
    foreach ($return as $line)
    {
        $output .= "<item><title>".htmlentities($line['headline'])."</title>
                                <link>".htmlentities($line['link'])."</link>
                                <description>".htmlentities(strip_tags($line['description']))."</description>
                            </item>";
    }
    $output .= "</channel></rss>";
    echo $output;
?>

配置好数据库,实现类似以上的一种输出,你的博客就具有了RSS功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值