RSS Class – PHP

This is a generation RSS document PHP class

<?php
if (defined(’_CLASS_RSS_PHP’)) return;
define(’_CLASS_RSS_PHP’,1);
/**
 *  Class name: RSS
 *  $rss = new RSS(”Blog”,”http://www.easemarry.com/”,”EaseMarry’s Blog”);
 *  $rss->AddItem(”RSS Class”,”http://www.easemarry.com”,”description”,date());
 *  $rss->AddItem(…);
 *  $rss->SaveToFile(”../rss/index.xml”);
 */

class RSS {
 var $rss_ver = “2.0″;
 var $channel_title = ”;
 var $channel_link = ”;
 var $channel_description = ”;
 var $language = ‘en-us’;
 var $copyright = ‘easemarr.com’;
 var $webMaster = ‘web@easemarry.com’;
 var $pubDate = ”;
 var $generator = ‘Easemarry.com’;
 var $content = ”;
 var $items = array();

 function RSS($title, $link, $description) {
  date_default_timezone_set(’GMT’);
  $this->channel_title = $title;
  $this->channel_link = $link;
  $this->channel_description = $description;
  $this->pubDate = Date(DATE_RFC822);
 }

 function AddItem($title, $link, $description ,$pubDate) {
  $this->items[] = array(’titile’ => $title ,
  ’link’ => $link,
  ’description’ => $description,
  ’pubDate’ => $pubDate);
 }

 function BuildRSS() {
  $s = “<?xml version=\”1.0\” encoding=\”UTF-8\” ?>\n<rss version=\”2.0\”> \n”;
  // start channel
  $s .= “<channel>\n”;
  $s .= “<title>$this->channel_title</title>\n”;
  $s .= “<link>$this->channel_link</link>\n”;
  $s .= “<description>$this->channel_description</description>\n”;
  $s .= “<language>$this->language</language>\n”;
  if (!empty($this->copyright)) {
   $s .= “<copyright>$this->copyright</copyright>\n”;
  }
  if (!empty($this->webMaster)) {
   $s .= “<webMaster>$this->webMaster</webMaster>\n”;
  }
  if (!empty($this->pubDate)) {
   $s .= “<pubDate>$this->pubDate</pubDate>\n”;
  }
  if (!empty($this->generator)) {
   $s .= “<generator>$this->generator</generator>\n”;
  }

  // start items
  if (count($this->items)>=1){
   foreach ($this->items as $key=>$value){
    $s .= “<item>\n”;
    $s .= “<title>”.$value['titile'].”</title>\n”;
    $s .= “<link>”.$value['link'].”</link>\n”;
    $s .= “<description>”.$value['description'].”</description>\n”;
    $s .= “<pubDate>”.$value['pubDate'].”</pubDate>\n”;
    $s .= “<guid isPermaLink=\”true\”>”.$value['link'].”</guid>”;
    $s .= “</item>\n”;
   }
  }
  // close channel
  $s .= “</channel>\n</rss>”;
  $this->content = $s;
 }

 function Show() {
  if (empty($this->content)) $this->BuildRSS();
  header(’Content-type:text/xml’);
  echo($this->content);
 }

 function SaveToFile($fname) {
  if (empty($this->content)) $this->BuildRSS();
  $handle = fopen($fname, ‘wb’);
  if ($handle === false) {
   return false;
  }else{
   fwrite($handle, $this->content);
   fclose($handle);
   return true;
  }
 }
}
?>

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments

No comments yet.

Leave a comment

(required)

(required)