Instance of RSS generation class implemented by php
This article mainly introduces the RSS generation class implemented in PHP. It analyzes the principles, definitions and usage techniques of the RSS generation class with examples. It is of great practical value. Friends in need can refer to it
The example in this article describes the RSS generation class implemented in PHP. Share it with everyone for your reference. The details are as follows:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
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 .= " $out .= " $out .= "" . $this->link . "n"; $out .= " $out .= " $out .= " foreach($this->tags as $key => $val) $out .= "<$key>$val$key>n"; foreach($this->items as $item) $out .= $item->out(); $out .= "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 = '' . "n"; $out .= ' return $out; } function footer() { return ''; } } 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 .= " $out .= " $out .= "" . $this->link . "n"; $out .= " $out .= " if($this->attachment != "") $out .= " if(empty($this->guid)) $this->guid = $this->link; $out .= "
foreach($this->tags as $key => $val) $out .= "<$key>$val$keyn>"; $out .= "n"; return $out; } function enclosure($url, $mimetype, $length) { $this->attachment = $url; $this->mimetype = $mimetype; $this->length = $length; } } |
使用示例如下:
?
2 3 11 12
13
14
15
16
|
$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 = ""; $feed->addItem($item); } echo $feed->serve(); |