Powerful PHP class for RSS 2.0 feed generation.
By : mgalesic
Simple example:
<?php
include('class.rss.php');
$rss = new rss('utf-8');
$rss->channel('RSStitle', 'http://www.yoursite.com', 'Description of RSS channel');
$rss->language('en-us');
$rss->copyright('Copyright by yourSiteName 2006');
$rss->managingEditor('email@yoursite.com');
$rss->category('CategoryName');
$rss->startRSS();
for($i = 1; $i < 10; $i++){
$rss->itemTitle('News ' . $i);
$rss->itemLink('http://www.yoursite.com/news.php?id=' . $i);
$rss->itemDescription('This is short news description number ' . $i);
$rss->itemAuthor('email@yoursite.com');
$rss->itemGuid('http://www.yoursite.com/news.php?id=' . $i);
$rss->itemSource('YourSiteName', 'http://www.yoursite.com/rss/rss.xml');
$rss->addItem();
}
echo $rss->RSSdone();
?>
Prototypes and description:
---------------------------
Full documentation of RSS 2.0 standard you can find at http://blogs.law.harvard.edu/tech/rss
Legends:
--------
*R - required function
*O - optional function
= '' - optional parameter inside the function
- $rss = new rss($encoding = '');
- function channel($title, $link, $description);
*R
- function language($language);
*O
- function copyright($copyright);
*O
Copyright notice for content in the channel
- function managingEditor($managingEditor);
*O
Email address for person responsible for editorial content
- function webMaster($webMaster);
*O
Email address for person responsible for technical issues relating to channel
- function pubDate($pubDate);
*O
The publication date for the content in the channel
All date-times in RSS conform to the Date and Time Specification of RFC 822
- function lastBuildDate($lastBuildDate);
*O
The last time the content of the channel changed
- function category($category, $domain = '');
*O
Specify one or more categories that the channel belongs to
Follows the same rules as the function itemCategory();
- function cloud($domain, $port, $path, $registerProcedure, $protocol);
*O
Allows processes to register with a cloud to be notified of updates to the channel,
implementing a lightweight publish-subscribe protocol for RSS feeds
- function ttl($ttl);
*O
ttl stands for time to live
It's a number of minutes that indicates how long a channel can be cached before refreshing from the source
- function image($url, $title, $link, $width = '', $height = '', $description = '');
*O
Specifies a GIF, JPEG or PNG image that can be displayed with the channel
- function textInput($title, $description, $name, $link);
*O
Specifies a text input box that can be displayed with the channel
- function skipHours();
*O
function can take any numner of parameters
See the specification for skipHours tag
- function skipDays();
*O
function can take any numner of parameters
See the specification for skipDays tag
- function startRSS($path = '.', $filename = 'rss');
*O
function take path and filename for creating an XML file
It has to be called after all aabove function but before any item function
In default it will create rss.xml file in current directory
Item functions:
---------------
A channel may contain any number of item functions.
An item may represent a "story" much like a story in a newspaper or magazine
If so its description is a synopsis of the story, and the link points to the full story.
An item may also be complete in itself, if so, the description contains the text,
and the link and title may be omitted.
All elements of an item are optional, however at least one of title or description must be present.
- function itemTitle($title)
*R / *O
The title of the item
- function itemLink($link);
*O
The URL of the item
- function itemDescription($description);
*R / *O
The item synopsis
- function itemAuthor($author);
*O
Email address of the author of the item
- function itemCategory($category, $domain = '');
*O
Includes the item in one or more categories.
It has one optional attribute, domain, a string that identifies a categorization taxonomy
The value of the element is a forward-slash-separated string that identifies a hierarchic location in the indicated taxonomy.
Processors may establish conventions for the interpretation of categories.
You may include as many category elements as you need to, for different domains,
and to have an item cross-referenced in different parts of the same domain.
- function itemComments($comments);
*O
URL of a page for comments relating to the item
- function itemEnclosure($enclosure);
*O
Describes a media object that is attached to the item
- function itemGuid($guid, $isPermaLink = '');
*O
A string that uniquely identifies the item
If the guid element has an attribute named "isPermaLink" with a value of true,
the reader may assume that it is a permalink to the item, that is, a url that can be opened in a Web browser,
that points to the full item described by the <item> element
- function itemPubDate($pubDate);
*O
Indicates when the item was published
- function itemSource($source, $url);
*O
The RSS channel that the item came from
- function addItem();
*R
You place this function after all item functions.
You can create unlimited number of items.
- function RSSdone();
*R
This is the last you write in your code
- function clearRSS();
*R / *O
You write this function if You want to create a new RSS channel without reinitializing the class
Click to
Download File| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More Miscellaneous Code Articles
More By Codewalkers
developerWorks - FREE Tools! |
Build secure Web services with transport-level security using IBM Rational Application Developer V7 and IBM WebSphere Application Server V6.1. Follow this three-part series for step-by-step instructions about how to develop Web services and clients, configure HTTP basic authentication, and configure HTTP over SSL (HTTPS). This first part of the series walks you through building a Web service for a simple calculator application. You generate and test two different types of Web services clients: a Java Platform, Enterprise Edition (Java EE) client and a stand-alone Java client. You also handle user-defined exceptions in Web services. FREE! Go There Now!
|
|
|
|
Learn how you can extend modern application lifecycle management to IBM System z through the IBM Rational Software Delivery Platform (SDP). The Did you say mainframe? e-kit includes podcasts, webcasts, tutorials, white and red papers, demos, and articles designed to help ease the challenges of modernizing your enterprise. This complimentary kit for mainframe developers is a practical, how-to guide for making the most of an existing development environment, including the skills and infrastructure already in place at an established enterprise. FREE! Go There Now!
|
|
|
|
WebSphere Process Server delivers a unique integration framework that simplifies existing IT resources. Often, as IT assets grow to support business demand, so too does their complexity and manageability. In this webcast, we’ll discuss how WebSphere Process Server helps deliver an SOA infrastructure that provides a common model to orchestrate, mediate, connect, map, and execute the underlying IT functions. Discover how WebSphere Process Server simplifies integration of business processes by leveraging existing IT assets as reusable services without the complexities of traditional integration methodologies. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to download a free trial of the latest release of IBM Lotus Sametime Standard V8.0. Lotus Sametime Standard V8.0 is a platform for unified communications and collaboration that combines security features with an extensible, open solution including integrated Voice over IP, geographic location awareness, mobile clients, and a robust Business Partner community offering telephony and video integration. FREE! Go There Now!
|
|
|
|
Download a free trial version of IBM Rational Developer for System i V7.1, which provides a complete development environment for traditional i5/OS application development. IBM Rational Developer for System i is a new eclipse-based workstation offering for i5/OS application development that provides a comprehensive Integrated Development Environment for edit/compile/debug of traditional RPG/COBOL/C/C++ i5/OS applications. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to download a free trial of the Rational Host Access Transformation Services (HATS) Toolkit. The HATS toolkit provides a set of plug-ins for the IBM Rational Software Delivery Platform to help you easily extend your legacy applications. HATS makes your 3270 and 5250 applications available as HTML through the most popular Web browsers, while converting your host screens to a Web look and feel and it also enables you to develop new Web, portal, and rich-client applications. FREE! Go There Now!
|
|
|
|
XML has become a common way of storing business data as flat files and many data server vendors including IBM have provided ways to store this data within relational database systems. Increasingly collections of XML files are accessed like databases using an xQuery and other XML standard mechanisms. Businesses find the need to combine the traditional tabular structured data with XML formatted data. In this webcast, you’ll learn about IBM’s WebSphere Federation Server technology, which provides users with the ability to integrate these two data formats. FREE! Go There Now!
|
|
|
|
Informix Dynamic Server (IDS) Express Edition offers outstanding online transaction processing (OLTP) database performance, while helping to simplify and automate many of the tasks associated with deploying databases for small business applications. IDS 11 further extends the ease of management and applications integration with the Admin API and Scheduler, high availability with Continuous Log Restore for backup server recovery in case of a primary server failure, and column level encryption to protect personal and company private data. FREE! Go There Now!
|
|
|
|
The Eclipse community is constantly working to extend Eclipse's functionality. In this webcast, learn about some of the most important and feature-rich projects under development. From multi-language support to plug-in development, tune in to see what Eclipse is capable of now. FREE! Go There Now!
|
|
|
|
With IBM Rational Systems Development Solution, you can deliver products faster with higher quality. Within this kit, Read the “Model Driven Systems Development” white paper to see how to improve product quality and communication. Then check out the rest of the e-Kit to learn more about important topics that can affect the success of any software project through customer examples, tutorials, informative Webcasts, and best practices for designing, building and managing systems. From start to finish, at every stage in your projects, Rational Systems Development Solution can help your company reach its full potential. FREE! Go There Now!
|
|
|
|
All FREE IBM® developerWorks Tools! |