日期: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)