现在在写一个论坛,想实现rss功能,可是不知道在首次生成后如何在以后更新rss文件的内容,好比说有一个用户发布了一篇新的帖子,那么我们就应该更新rss文件了,可是该如何驱动这个rss文件的更新呢?

解决方案 »

  1.   

    本文将讨论PHP网站中的RSS内容更新,对RSS和ATOM的原理不做详细描述。我们知道RSS新闻订阅在新闻网站中越来越受欢迎,RSS搜索引擎也在大浪淘沙后逐步沉淀于几家知名网站, RSS 新闻阅读器的开发市场角逐走入视线。日前Bakbone It Group的同仁在使用PHP进行RSS聚合开发时总结了以下内容,供参考。从表面上看,静态和动态网页中,RSS均有较好的表现。事实上如果静态生成RSS,无论从易用性还是经济性角度看都不符合现实需求。所以驱动RSS内容更新,动态生成RSS才是网站所需要的RSS聚合功能。无论使用哪种语言动态生成RSS内容更新,其原理都遵循“三文件生成”原则,即文件头、文件内容、文件尾生成。文件头主要是一些声明、频道开启(channel)和网站描述,文件尾主要是关闭频道和RSS标签,而文件中则通过循环动态生成item。下面给一个动态生成RSS的PHP例子。文件头
    //  本代码来自搜索引擎优化网站www.backboneitgrou.cn ,仅供参考  header("Content-type: application/xml");
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"". "?". ">\n";
      echo "<?xml-stylesheet type =\"text/css\" href=\" css.css\"". "?". ">\n";  // 指定你的css  echo "<rss version=\"2.0\">\n";
      echo "<channel>\n";//  Required channel fields
      echo "\t<title></title>\n";   // 设定网站Title
      echo "\t<link> </link>\n";  // 设定网址
      echo "\t<description></description>\n";  //设定网站描述
      echo "\t<copyright></copyright>\n";  // 设定版权信息
      echo "\t<managingEditor></managingEditor>\n";  // 设置管理员
    echo "\t<language>zh-cn</language>\n";  // 设定语言
      echo "\t<docs> </docs>\n";  // 设定首页页面
    echo "\t<generator></generator>\n";  
    echo "\t <ttl>5</ttl>\n";  
    文件内容这部分的聚合更新主要原理是通过sql将要参加RSS的记录读入一个数组。然后通过while 循环动态生成item。while()
    {
        echo "\t<item>\n";
        echo "\t<title></title>\n";  // 链接Title
        echo "\t\t<link></link>\n";   // 插入链接页
        echo "\t<description></ description >\n";  // 描述,注意此处可能需要截取文章内容,进行字符过滤还需要<![CDATA[]]>    echo "\t\t<category></category>\n";   // 设定分类
        echo "\t\t<auther></auther>\n";   // 设定作者,注意格式
        echo "\t<pubDate></pubDate>\n"; // 注意格式
        echo "\t</item>\n";}文件尾echo "\t</channel>\n";   // 关闭频道
    echo "\t</rss>\n";   // 关闭RSS