PHP Code:
<?php
// THIS IS ABSOLUTELY ESSENTIAL - DO NOT FORGET TO SET THIS
@date_default_timezone_set("GMT");
$writer = new XMLWriter();
// Output directly to the user
$writer->openURI('php://output');
$writer->startDocument('1.0');
$writer->setIndent(4);
// declare it as an rss document
$writer->startElement('rss');
$writer->writeAttribute('version', '2.0');
$writer->writeAttribute('xmlns:atom', 'http://www.w3.org/2005/Atom');
$writer->startElement("channel");
//----------------------------------------------------
//$writer->writeElement('ttl', '0');
$writer->writeElement('title', 'Latest Products');
$writer->writeElement('description', 'This is the latest products from our website.');
$writer->writeElement('link', 'http://www.domain.com/link.htm');
$writer->writeElement('pubDate', date("D, d M Y H:i:s e"));
$writer->startElement('image');
$writer->writeElement('title', 'Latest Products');
$writer->writeElement('link', 'http://www.domain.com/link.htm');
$writer->writeElement('url', 'http://www.iab.net/media/image/120x60.gif');
$writer->writeElement('width', '120');
$writer->writeElement('height', '60');
$writer->endElement();
//----------------------------------------------------
//----------------------------------------------------
$writer->startElement("item");
$writer->writeElement('title', 'New Product 8');
$writer->writeElement('link', 'http://www.domain.com/link.htm');
$writer->writeElement('description', 'Description 8 Yeah!');
$writer->writeElement('guid', 'http://www.domain.com/link.htm?tiem=1234');
$writer->writeElement('pubDate', date("D, d M Y H:i:s e"));
$writer->startElement('category');
$writer->writeAttribute('domain', 'http://www.domain.com/link.htm');
$writer->text('May 2008');
$writer->endElement(); // Category
// End Item
$writer->endElement();
//----------------------------------------------------
// End channel
$writer->endElement();
// End rss
$writer->endElement();
$writer->endDocument();
$writer->flush();
?>
Code:
<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Latest Products</title>
<description>This is the latest products from our website.</description>
<link>http://www.domain.com/link.htm</link>
<pubDate>Thu, 10 Jul 2008 11:47:14 GMT</pubDate>
<image>
<title>Latest Products</title>
<link>http://www.domain.com/link.htm</link>
<url>http://www.iab.net/media/image/120x60.gif</url>
<width>120</width>
<height>60</height>
</image>
<item>
<title>New Product 8</title>
<link>http://www.domain.com/link.htm</link>
<description>Description 8 Yeah!</description>
<guid>http://www.domain.com/link.htm?tiem=1234</guid>
<pubDate>Thu, 10 Jul 2008 11:47:14 GMT</pubDate>
<category domain="http://www.domain.com/link.htm">May 2008</category>
</item>
</channel>
</rss>
Code:
<atom:link href="http://dallas.example.com/rss.xml" rel="self" type="application/rss+xml" />
PHP Code:
@date_default_timezone_set("GMT");
class rss extends XMLWriter
{
// $file = filename to output to
// $title = rss fed title
// $description = rss feed description
// $link = rss feed link
// $date = date of feed
function __construct($file, $title, $description, $link, $date)
{
// Start by calling the XMLWriter constructor...
$this->openURI($file);
$this->startDocument('1.0');
$this->setIndent(4);
$this->startElement('rss');
$this->writeAttribute('version', '2.0');
$this->writeAttribute('xmlns:atom', 'http://www.w3.org/2005/Atom');
$this->startElement("channel");
$this->writeElement('title', $title);
$this->writeElement('description', $description);
$this->writeElement('link', $link);
$this->writeElement('pubDate', date("D, d M Y H:i:s e", strtotime($date)));
}
// Send a multi-dimensional array
// $array =
// 'title' = Item title
// 'descritpion'
// 'link'
// 'guid' = unique id for item (should be a url)
// 'category' = array of:
// 'title'
// 'domain'
function addItem($array)
{
if (is_array($array))
{
$this->startElement("item");
$this->writeElement('title', $array['title']);
$this->writeElement('link', $array['link']);
$this->writeElement('description', $array['description']);
$this->writeElement('guid', $array['guid']);
if (isset($array['date']))
{
$this->writeElement('pubDate', date("D, d M Y H:i:s e", strtotime($array['date'])));
}
if (isset($array['category']) && isset($array['category']['title']))
{
$this->startElement('category');
$this->writeAttribute('domain', $array['category']['domain']);
$this->text($array['category']['title']);
$this->endElement(); // Category
}
$this->endElement(); // Item
}
}
function _endRss()
{
// End channel
$this->endElement();
// End rss
$this->endElement();
$this->endDocument();
$this->flush();
}
} // end class...
PHP Code:
// Sample usage of class...
$item = array();
$item['title'] = 'New product One';
$item['link'] = 'http://www.domain.com/product1.htm';
$item['description'] = 'A full description of product that is new.';
$item['guid'] = 'http://www.domain.com/product1.htm'; // a unique http address will do!
$item['date'] = date('Y-m-d'); //send any time of date!
$item['category'] = array();
$item['category']['title'] = 'CD Players';
$item['category']['domain'] = 'http://www.domain.com/cdplayers.htm';
$w = new rss('php://output', 'New Products', 'This month\'s new products', 'http://www.domain.com/link.htm', date('Y-m-d'));
$w->addItem($item);
$w->_endRss();