Home >php教程 >php手册 >php完美的rss 生成类

php完美的rss 生成类

WBOY
WBOYOriginal
2016-06-13 11:26:43899browse

RSS订阅功能,在很多网站都可以有但也有很多,下面代码是自己写的,其中使用到了一个PHP类:RSS.class.php,感觉非常方便,不敢独享,特拿出来跟大家分享。

 代码如下 复制代码

include_once("class/RSS.class.php");//引入RSS PHP类
$RSS= new RSS("名称","地址","描述","RSS频道图标");
$RSS->AddItem("日志的标题","日志的地址","日志的摘要","日志的发布日期");
$RSS->Display();//输出RSS内容


全部代码如下:

 代码如下 复制代码
// +----------------------------------------------------------------------
// | YBlog
// +----------------------------------------------------------------------
// | Copyright (c) 2008 http://www.hzhuti.com/nokia/n97/ All rights reserved.
// +----------------------------------------------------------------------
// +----------------------------------------------------------------------
// | Author: yhustc
// +----------------------------------------------------------------------
// $Id$
 
/**
 +------------------------------------------------------------------------------
 * RSS生成类
 +------------------------------------------------------------------------------
 * @author    yhustc
 * @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 = "rn";
        $rss = "rn";
        $rss .= "rn";
        $rss .= "channel_title}]]>rn";
        $rss .= "channel_description}]]>rn";
        $rss .= "{$this->channel_link}rn";
        $rss .= "{$this->language}rn";
 
        if (!empty($this->pubDate))
            $rss .= "{$this->pubDate}rn";
        if (!empty($this->lastBuildDate))
            $rss .= "{$this->lastBuildDate}rn";
        if (!empty($this->generator))
            $rss .= "{$this->generator}rn";
 
        $rss .= "5rn";
 
        if (!empty($this->channel_imgurl)) {
            $rss .= "rn";
            $rss .= "channel_title}]]>rn";
            $rss .= "{$this->channel_link}rn";
            $rss .= "{$this->channel_imgurl}rn";
            $rss .= "rn";
        }
 
        for ($i = 0; $i items); $i++) {
            $rss .= "rn";
            $rss .= "items[$i]['title']}]]>rn";
            $rss .= "{$this->items[$i]['link']}rn";
            $rss .= "items[$i]['description']}]]>rn";
            $rss .= "{$this->items[$i]['pubDate']}rn";
            $rss .= "
rn";
        }
 
        $rss .= "
rn
";
        return $rss;
    }
 
    /**
     +----------------------------------------------------------
     * 输出RSS的XML到浏览器
     +----------------------------------------------------------
     * @access public
     +----------------------------------------------------------
     * @return void
     +----------------------------------------------------------
     */
    public function Display()
    {
        header("Content-Type: text/xml; charset=utf-8");
        echo $this->Fetch();
        exit;
    }
}
?>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn