Re: RSS feeder in PHP5?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Craig Whitmore wrote:
On Mon, 2009-01-12 at 11:02 +0000, Richard Heyes wrote:
Is there something in PHP5 which can generate the RSS feed?
You don't need an extension to help you generate an XML feed. You
dimply output XML data instead of HTML and send an appropriate content
type header, eg:

header('Content-Type: text/xml');

 You actually mean application/xml not text/xml


actually..
header("Content-type: application/rss+xml; charset=iso-8859-1")
or
header("Content-type: application/rss+xml; charset=utf-8")

And its alot better to use DOMDocument in PHP5 for XML Creation rather
than hardcode everything.


agreed in principle; and I can't belive i'm saying this.. but with the case of a single rss feed in a single format then a tiny inline script which echo's out is far far lighter on the server and will do the trick; it's one of those set-up and leave scripts so DOMDocument may be overkill in this situation.

here's an example / test code:

<?php
$rss_item_template = '	<item>
		<title>RSS_TITLE</title>
		<link>RSS_LINK</link>
		<pubDate>RSS_DATE</pubDate>
		<dc:creator>mediatakeout</dc:creator>
		<category><![CDATA[news]]></category>
		<guid isPermaLink="false">RSS_LINK</guid>
		<description><![CDATA[RSS_DESCRIPTION]]></description>
		<content:encoded><![CDATA[RSS_DESCRIPTION]]></content:encoded>
	</item>
';
$rss_items = '';
$align = 'right';
if( $raw_items = $db->select("SELECT * FROM `news` LIMIT 0,20") ) {
  foreach($raw_items as $index => $item ) {
   $title = stripJunkSimple(stripslashes(htmlentities($item['title'])));
   $link = "http://domain.com/";. $item['id']; //edit
   $date = date( 'r', $item['posting_date'] );  //edit
   $plain = str_replace("\n",'<br />',stripslashes($item['body']));
   $in = array('RSS_TITLE','RSS_LINK','RSS_DATE','RSS_DESCRIPTION');
   $out = array( $title, $link, $date, $plain );
   $rss_simple_item = str_replace( $in , $out , $rss_item_template );
   $rss_items .= $rss_simple_item;
  }
}
$rss_template = '<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/";
	xmlns:wfw="http://wellformedweb.org/CommentAPI/";
	xmlns:dc="http://purl.org/dc/elements/1.1/";
	xmlns:atom="http://www.w3.org/2005/Atom";
	>
	<channel>
		<title>Domain.com RSS Feed</title>
<atom:link href="http://' .'domain.com'. '/rss/" rel="self" type="application/rss+xml" />
		<link>http://' .'domain.com'. '/</link>
		<description>Top Stories on Domain.com</description>
		<pubDate>' . date('r') . '</pubDate>
		<generator>http://' . 'domain.com' . '/</generator>
		<language>en</language>
' . $rss_items . '
	</channel>
</rss>';
header("Content-type: application/rss+xml; charset=iso-8859-1");
echo $rss_template;
?>



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux