Heim > Backend-Entwicklung > PHP-Tutorial > PHP implementiert die RSS-Abonnementklasse

PHP implementiert die RSS-Abonnementklasse

伊谢尔伦
Freigeben: 2016-11-29 10:21:36
Original
1386 Leute haben es durchsucht

<?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;
    }
}
?>
Nach dem Login kopieren


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage