日期:2013-04-17  浏览次数:20400 次

  • <?
    php/**//* * @(#)Rss2Gen.inc.php (beta) 2005/2/19 *  * exblog RSS2 生成类,实现了RSS2规范中的大部分内容。 *  * 使用方法请见本类底部(Rss2Gen类使用注释)信息。 * * 本程序为免费程序,源代码使用者可任意更改(请勿用于商业用途),但请保留本版权信息! *  * @author  HexUzHoNG <hexuzhong@163.com> * @version beta-2, 2005-03-11 * @since   exBlog-1.3.0 * */ class Rss2Gen {    var $rss_header;  //RSS文档头,存放一个<rss>根元素及其version属性。  var $item;    //  var $items; var $channel_header; //频道的头部信息,存放频道名称、URL、描述、语言、版权等等。 //--------------- 以下元素是可选的频道子元素 --------------// var $channel_language; //频道使用的语言种类,例如en-us、zh-cn等,放便聚集器组织中一语言的站点。 var $channel_copyright; //频道内容的版权声明。 var $channel_managingEditor; //对该频道内容负责的个人的Email地址 var $channel_webMaster;   //对该频道的技术支持负责的个人的Email地址 var $channel_pubDate;   //该频道内容的公布日期 var $channel_lastBuildDate;  //上次频道内容更改的时间 var $channel_category;   //说明频道属于哪一个或多个分类 var $channel_generator = "<generator>exblog RSS2 builder</generator>"; //用于生成该频道的程序 var $channel_docs;   //RSS文件所使用格式的说明文档所在的URL var $channel_cloud;   //允许进程注册为“cloud”,频道更新时通知它 var $channel_ttl;   //ttl 代表存活时间,存活时间是一个数字,表示提要在刷新之前缓冲的分钟数 var $channel_image;   //指定一个能在频道中显示的GIF、JPEG 或PNG 图像 //var $channel_rating;  //关于该频道的 PICS 评价 //var $channel_textInput;  //定义可与频道一起显示的输入框 //var $channel_skipHours;  //告诉聚集器哪些小时的更新可以忽略 //var $channel_skipDays;  //告诉聚集器那一天的更新可以忽略  var $channel;   //整个rss2文档信息,用与生成整个页面。  var $halt_on_error = true;   /**//**    * 构造函数,其参数皆为rss2必须的频道子元素,如果不填,则为默认内容。   *    * @param String $title 频道的名称,频道的title应该和web站点的title尽量一致。   * @param String $link 与该频道关联的web站点的URL。   * @param String $description 对频道的一段简单描述,如介绍频道是做什么的。   * @access public   */  function Rss2Gen() {  $this->fillHeader();  }    /**//**   * 生成RSS文档头,必须以一个<rss>元素作为根元素,其有一个强制属性version,指定当前文档遵守的RSS版本。   * @access private   */  function fillHeader() {   $this->rss_header = "
    <?xml version="1.0" encoding="gb2312"?>
    rn";   $this->rss_header .= " <rss version="2.0">rn";  }  /**//**  * 设置频道头,其中三个元素为必须的。  * @param String $title 频道的名称,频道的title应该和Web站点的title尽量一致。  * @param String $link 与该频道关联的Web站点或者站点区域的URL。  * @param String $description 对频道的一段简单描述,简要介绍频道是做什么的。  */ function setChannel($title = "exblog", $link = "http://www.exblog.org", $description = "exblog") {  $this->channel_header = "  <title><![CDATA[".$title."]]></title>n";   $this->channel_header .= "  <link>".$link."</link>rn";   $this->channel_header .= "  <description><![CDATA[".$description."]]></description>rn"; }  function halt($msg) {  if ($this->halt_on_error) {   $this->haltmsg($msg);  }  die("exblog RSS2 exit"); }  function haltmsg($msg) {  sprintf("<b>exblog RSS2 builder ERROR: %s</b><br>rn", $msg); }  /**//**  * 设置该RSS文档的语言,默认为简体中文。  * @access public  */  function setLanguage($lang = "zh_cn") {   $this->channel_language = "  <language>".$lang."</language>rn";   }   /**//**  * 频道内容的版权声明  * @access public  */  function setCopyright($copyright = "exblog") {   $this->channel_copyright = "  <copyright>".$copyright."</copyright>rn";  }   /**//**  * 对该频道内容负责的个人的Email地址  * @access public  */  function setManagingEditor($email = NULL) {   if (empty($email)