PHP implements RSS subscription class

伊谢尔伦
Release: 2016-11-29 10:21:36
Original
1376 people have browsed it

<?php
class RSS
{
    /**
    +----------------------------------------------------------
     * RSS频道名
     +----------------------------------------------------------
     */
    protected $channel_title = &#39;&#39;;
    /**
     +----------------------------------------------------------
     * RSS频道链接
     +----------------------------------------------------------
     */
    protected $channel_link = &#39;&#39;;
    /**
     +----------------------------------------------------------
     * RSS频道描述
     +----------------------------------------------------------
     */
    protected $channel_description = &#39;&#39;;
    /**
     +----------------------------------------------------------
     * RSS频道使用的小图标的URL
     +----------------------------------------------------------
     */
    protected $channel_imgurl = &#39;&#39;;
    /**
     +----------------------------------------------------------
     * RSS频道所使用的语言
     +----------------------------------------------------------
     */
    protected $language = &#39;zh_CN&#39;;
    /**
     +----------------------------------------------------------
     * RSS文档创建日期,默认为今天
     +----------------------------------------------------------
     */
    protected $pubDate = &#39;&#39;;
    protected $lastBuildDate = &#39;&#39;;
  
    protected $generator = &#39;YBlog RSS Generator&#39;;
  
    /**
     +----------------------------------------------------------
     * RSS单条信息的数组
     +----------------------------------------------------------
     */
    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 = &#39;&#39;)
    {
        $this->channel_title = $title;
        $this->channel_link = $link;
        $this->channel_description = $description;
        $this->channel_imgurl = $imgurl;
        $this->pubDate = Date(&#39;Y-m-d H:i:s&#39;, time());
        $this->lastBuildDate = Date(&#39;Y-m-d H:i:s&#39;, 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(&#39;title&#39; => $title, &#39;link&#39; => $link, &#39;description&#39; => $description, &#39;pubDate&#39; => $pubDate);
     }
  
     /**
     +----------------------------------------------------------
     * 输出RSS的XML为字符串
     +----------------------------------------------------------
     * @access public 
     +----------------------------------------------------------
     * @return string
     +----------------------------------------------------------
     */
    public function Fetch()
    {
        $rss .= "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n";
        $rss .= "<rss version=\"2.0\">\r\n";
        $rss .= "<channel>\r\n";
        $rss .= "<title><![CDATA[{$this->channel_title}]]></title>\r\n";
        $rss .= "<description><![CDATA[{$this->channel_description}]]></description>\r\n";
        $rss .= "<link>{$this->channel_link}</link>\r\n";
        $rss .= "<language>{$this->language}</language>\r\n";
  
        if (!empty($this->pubDate))
            $rss .= "<pubDate>{$this->pubDate}</pubDate>\r\n";
        if (!empty($this->lastBuildDate))
            $rss .= "<lastBuildDate>{$this->lastBuildDate}</lastBuildDate>\r\n";
        if (!empty($this->generator))
            $rss .= "<generator>{$this->generator}</generator>\r\n";
  
        $rss .= "<ttl>5</ttl>\r\n";
  
        if (!empty($this->channel_imgurl)) {
            $rss .= "<image>\r\n";
            $rss .= "<title><![CDATA[{$this->channel_title}]]></title>\r\n";
            $rss .= "<link>{$this->channel_link}</link>\r\n";
            $rss .= "<url>{$this->channel_imgurl}</url>\r\n";
            $rss .= "</image>\r\n";
        }
  
        for ($i = 0; $i < count($this->items); $i++) {
            $rss .= "<item>\r\n";
            $rss .= "<title><![CDATA[{$this->items[$i][&#39;title&#39;]}]]></title>\r\n";
            $rss .= "<link>{$this->items[$i][&#39;link&#39;]}</link>\r\n";
            $rss .= "<description><![CDATA[{$this->items[$i][&#39;description&#39;]}]]></description>\r\n";
            $rss .= "<pubDate>{$this->items[$i][&#39;pubDate&#39;]}</pubDate>\r\n";
            $rss .= "</item>\r\n";
        }
  
        $rss .= "</channel>\r\n</rss>";
        return $rss;
    }
  
    /**
     +----------------------------------------------------------
     * 输出RSS的XML到浏览器
     +----------------------------------------------------------
     * @access public 
     +----------------------------------------------------------
     * @return void
     +----------------------------------------------------------
     */
    public function Display()
    {
        header("Content-Type: text/xml; charset=utf-8");
        echo $this->Fetch();
        exit;
    }
}
?>
Copy after login


Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template