php完美的rss 生成类
RSS订阅功能,在很多网站都可以有但也有很多,下面代码是自己写的,其中使用到了一个PHP类:RSS.class.php,感觉非常方便,不敢独享,特拿出来跟大家分享.
类的调用代码如下:
include_once ( "class/RSS.class.php" ); //引入RSS PHP类 $RSS = new RSS( "名称" , "地址" , "描述" , "RSS频道图标" ); $RSS ->AddItem( "日志的标题" , "日志的地址" , "日志的摘要" , "日志的发布日期" ); $RSS ->Display(); //输出RSS内容全部代码如下:
<?php // +---------------------------------------------------------------------- // | YBlog // +---------------------------------------------------------------------- // | Copyright (c) 2008 http://HdhCmsTest111cn.net/nokia/n97/ All rights reserved. // +---------------------------------------------------------------------- // +---------------------------------------------------------------------- // | Author: yhustc <yhustc@gmail测试数据> // +---------------------------------------------------------------------- // $Id$ /** +------------------------------------------------------------------------------ * RSS生成类 +------------------------------------------------------------------------------ * @author yhustc <yhustc@gmail测试数据> * @version $Id$ +------------------------------------------------------------------------------ */ class RSS { /** +---------------------------------------------------------- * RSS频道名 +---------------------------------------------------------- * @var string * @access protected +---------------------------------------------------------- */ protected $channel_title = '' ; /** +---------------------------------------------------------- * RSS频道链接 +---------------------------------------------------------- * @var string * @access protected +---------------------------------------------------------- */ protected $channel_link = '' ; /** +---------------------------------------------------------- * RSS频道描述 +---------------------------------------------------------- * @var string * @access protected +---------------------------------------------------------- */ protected $channel_description = '' ; /** +---------------------------------------------------------- * RSS频道使用的小图标的URL +---------------------------------------------------------- * @var string * @access protected +---------------------------------------------------------- */ protected $channel_imgurl = '' ; /** +---------------------------------------------------------- * RSS频道所使用的语言 +---------------------------------------------------------- * @var string * @access protected +---------------------------------------------------------- */ protected $language = 'zh_CN' ; /** +---------------------------------------------------------- * RSS文档创建日期,默认为今天 +---------------------------------------------------------- * @var string * @access protected +---------------------------------------------------------- */ protected $pubDate = '' ; protected $lastBuildDate = '' ; protected $generator = 'YBlog RSS Generator' ; /** +---------------------------------------------------------- * RSS单条信息的数组 +---------------------------------------------------------- * @var string * @access protected +---------------------------------------------------------- */ protected $items = array (); /** +---------------------------------------------------------- * 构造函数 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @param string $title RSS频道名 * @param string $link RSS频道链接 * @param string $description RSS频道描述 * @param string $imgurl RSS频道图标 +---------------------------------------------------------- */ public function __construct( $title , $link , $description , $imgurl = '' ) { $this ->channel_title = $title ; $this ->channel_link = $link ; $this ->channel_description = $description ; $this ->channel_imgurl = $imgurl ; $this ->pubDate = Date ( 'Y-m-d H:i:s' , time()); $this ->lastBuildDate = Date ( 'Y-m-d H:i:s' , time()); } /** +---------------------------------------------------------- * 设置私有变量 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @param string $key 变量名 * @param string $value 变量的值 +---------------------------------------------------------- */ public function Config( $key , $value ) { $this ->{ $key } = $value ; } /** +---------------------------------------------------------- * 添加RSS项 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @param string $title 日志的标题 * @param string $link 日志的链接 * @param string $description 日志的摘要 * @param string $pubDate 日志的发布日期 +---------------------------------------------------------- */ function AddItem( $title , $link , $description , $pubDate ) { $this ->items[] = array ( 'title' => $title , 'link' => $link , 'description' => $description , 'pubDate' => $pubDate ); } /** +---------------------------------------------------------- * 输出RSS的XML为字符串 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ public function Fetch() { $rss = "<?xml version=" 1.0 " encoding=" utf-8 " ?>rn" ; $rss = "<rss version=" 2.0 ">rn" ; $rss .= "<channel>rn" ; $rss .= "<title><![CDATA[{$this->channel_title}]]></title>rn" ; $rss .= "<description><![CDATA[{$this->channel_description}]]></description>rn" ; $rss .= "<link>{$this->channel_link}</link>rn" ; $rss .= "<language>{$this->language}</language>rn" ; if (! empty empty ( $this ->pubDate)) $rss .= "<pubDate>{$this->pubDate}</pubDate>rn" ; if (! empty empty ( $this ->lastBuildDate)) $rss .= "<lastBuildDate>{$this->lastBuildDate}</lastBuildDate>rn" ; if (! empty empty ( $this ->generator)) $rss .= "<generator>{$this->generator}</generator>rn" ; $rss .= "<ttl>5</ttl>rn" ; if (! empty empty ( $this ->channel_imgurl)) { $rss .= "<image>rn" ; $rss .= "<title><![CDATA[{$this->channel_title}]]></title>rn" ; $rss .= "<link>{$this->channel_link}</link>rn" ; $rss .= "<url>{$this->channel_imgurl}</url>rn" ; $rss .= "</image>rn" ; } for ( $i = 0; $i < count ( $this ->items); $i ++) { $rss .= "<item>rn" ; $rss .= "<title><![CDATA[{$this->items[$i]['title']}]]></title>rn" ; $rss .= "<link>{$this->items[$i]['link']}</link>rn" ; $rss .= "<description><![CDATA[{$this->items[$i]['description']}]]></description>rn" ; $rss .= "<pubDate>{$this->items[$i]['pubDate']}</pubDate>rn" ; $rss .= "</item>rn" ; } $rss .= "</channel>rn</rss>" ; return $rss ; } /** +---------------------------------------------------------- * 输出RSS的XML到浏览器 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @return void +---------------------------------------------------------- */ public function Display() { header( "Content-Type: text/xml; charset=utf-8" ); echo $this ->Fetch(); //开源代码phpfensi测试数据 exit ; } } ?>查看更多关于php完美的rss 生成类 - php类库的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29514