本文实例讲述了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>
";$out .= "<title>" . $this->title . "</title>
";$out .= "<link>" . $this->link . "</link>
";$out .= "<description>" . $this->description . "</description>
";$out .= "<language>" . $this->language . "</language>
";$out .= "<pubDate>" . $this->getPubDate() . "</pubDate>
";foreach($this->tags as $key => $val) $out .= "<$key>$val</$key>
";foreach($this->items as $item) $out .= $item->out();$out .= "</channel>
";$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"?>" . "
";$out .= "<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">" . "
";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>
";$out .= "<title>" . $this->title . "</title>
";$out .= "<link>" . $this->link . "</link>
";$out .= "<description>" . $this->description . "</description>
";$out .= "<pubDate>" . $this->getPubDate() . "</pubDate>
";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>
";foreach($this->tags as $key => $val) $out .= "<$key>$val</$key
>";$out .= "</item>
";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程序设计有所帮助。