PHP 生成RSS类的简单示例

PHP生成RSS的类,感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
经测试代码如下:

/**
 * 生成RSS的类
 *
 * @param 
 * @arrange (编程之家) jb51.cc
 * $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();
 **/
 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,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(&,&amp;,$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,strtotime($when)) . GMT;
  }
 
  function getPubDate()
  {
   if(empty($this->pubDate))
    return date(D,$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;
  }
 }


/***   来自编程之家 jb51.cc(jb51.cc)   ***/

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...