首页 电脑 电脑学堂 查看内容

php实现的RSS生成类实例

2015-4-23 11:49 607 0

摘要: 本文实例讲述了php实现的RSS生成类。分享给大家供大家参考。具体如下: ?12345678910111213141516171819202122232425262728293031323334...
关键词: nbsp function pubDate var description return item title link tags

本文实例讲述了php实现的RSS生成类。分享给大家供大家参考。具体如下: ?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125class 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</$key\n>";  $out .= "</item>\n";  return $out; } function enclosure($url, $mimetype, $length) {  $this->attachment = $url;  $this->mimetype  = $mimetype;  $this->length   = $length; }} 使用示例如下: ?12345678910111213141516$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();
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部