php实现的RSS生成类实例

本文实例讲述了php实现RSS生成类。分享给大家供大家参考。具体如下:

  class RSS  {   var $title;   var $link;   var $description;   var $language = "en-us";   var $pubDate;   var $items;   var $tags;   function RSS()   {    $this->items = array();    $this->tags = array();   }   function addItem($item)   {    $this->items[] = $item;   }   function setPubDate($when)   {    if(strtotime($when) == false)     $this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT";    else     $this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT";   }   function getPubDate()   {    if(empty($this->pubDate))     return date("D, d M Y H:i:s ") . "GMT";    else     return $this->pubDate;   }   function addTag($tag, $value)   {    $this->tags[$tag] = $value;   }   function out()   {    $out = $this->header();    $out .= "<channel>n";    $out .= "<title>" . $this->title . "</title>n";    $out .= "<link>" . $this->link . "</link>n";    $out .= "<description>" . $this->description . "</description>n";    $out .= "<language>" . $this->language . "</language>n";    $out .= "<pubDate>" . $this->getPubDate() . "</pubDate>n";    foreach($this->tags as $key => $val) $out .= "<$key>$val</$key>n";    foreach($this->items as $item) $out .= $item->out();    $out .= "</channel>n";    $out .= $this->footer();    $out = str_replace("&", "&", $out);    return $out;   }   function serve($contentType = "application/xml")   {    $xml = $this->out();    header("Content-type: $contentType");    echo $xml;   }   function header()   {    $out = '<?xml version="1.0" encoding="utf-8"?>' . "n";    $out .= '<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">' . "n";    return $out;   }   function footer()   {    return '</rss>';   }  }  class RSSItem  {   var $title;   var $link;   var $description;   var $pubDate;   var $guid;   var $tags;   var $attachment;   var $length;   var $mimetype;   function RSSItem()   {     $this->tags = array();   }   function setPubDate($when)   {    if(strtotime($when) == false)     $this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT";    else     $this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT";   }   function getPubDate()   {    if(empty($this->pubDate))     return date("D, d M Y H:i:s ") . "GMT";    else     return $this->pubDate;   }   function addTag($tag, $value)   {    $this->tags[$tag] = $value;   }   function out()   {    $out .= "<item>n";    $out .= "<title>" . $this->title . "</title>n";    $out .= "<link>" . $this->link . "</link>n";    $out .= "<description>" . $this->description . "</description>n";    $out .= "<pubDate>" . $this->getPubDate() . "</pubDate>n";    if($this->attachment != "")     $out .= "<enclosure url='{$this->attachment}' length='{$this->length}' type='{$this->mimetype}' />";    if(empty($this->guid)) $this->guid = $this->link;    $out .= "<guid>" . $this->guid . "</guid>n";      foreach($this->tags as $key => $val) $out .= "<$key>$val</$keyn>";    $out .= "</item>n";    return $out;   }   function enclosure($url, $mimetype, $length)   {    $this->attachment = $url;    $this->mimetype  = $mimetype;    $this->length   = $length;   }  }

使用示例如下:

  $feed = new RSS();  $feed->title    = "RSS Feed Title";  $feed->link    = "http://website.com";  $feed->description = "Recent articles on your website.";  $db->query($query);  $result = $db->result;  while($row = mysql_fetch_array($result, MYSQL_ASSOC))  {    $item = new RSSItem();    $item->title = $title;    $item->link = $link;    $item->setPubDate($create_date);     $item->description = "<![CDATA[ $html ]]>";    $feed->addItem($item);  }  echo $feed->serve();

希望本文所述对大家的php程序设计有所帮助。

php实现的RSS生成类实例

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论