Generate RSS Feeds in PHP
We use an include to connect to the database. See Connect to MySQL database how to do this.
<?php
include "connect.php";
// pass the headers
header("Content-Type: text/xml");
header("Pragma: no-cache");
// RSS version
echo "<?xml version=\"1.0\"
encoding=\"ISO-8859-1\"?>
<rss version=\"2.0\">
// channel
<channel>
<title>This is your title</title>
<description>This is your description</description>
<link>This is your link f.e. http://mydomain.com</link>
<language>en-us</language>
<generator>Your Website or company name f.e. Bob's
RSS Feeds</generator>
";
// let's get the data. This is just an example query. Modify as is needed.
$listing = mysql_query("SELECT *,something.id AS id FROM customers,other_table WHERE other_table.cid=customers.id AND whatever='yes' AND other_table.valid='yes' ");
// Walk through all the records found and grab the data desired
while ($listings
= mysql_fetch_assoc($listing))
{
$title = str_replace("'", "'", $listings['company']);
// here we replace the single quote code back to '
for the browser.
$content = stripslashes(htmlspecialchars($listings['services']))."\r\n";
// here we convert HTML content back to readable
content for the browser. We also add a return because we add another line of
content.
$content .= "Address: ".$listings['address'].",
".$listings['city'].",
".$listings['zip']."
".$listings['state'].",
".$listings['country'];
// here we append another line to the first line of
content with ".=" .
If you have just one field of content it would look like:
$content = "Description: ".$listings['description'];
// with a label or simply:
$content = $listings['description'];
// without a label.
$url = "go.php?id=".$listings['id']; // here we use a go page to redirect to the URL because we want to register the click.
echo "
<item>
<title>$title</title>
<description>$content</description>
<link>$url</link>
<pubDate>date("l, j F, Y h:i:s A")</pubDate>
<lastBuildDate>date("l, j F, Y h:i:s A")</lastBuildDate>
</item>
";
} //endwhile
echo "
</channel>
</rss>";
?>
<?php
include "connect.php";
header("Content-Type: text/xml");
header("Pragma: no-cache");
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<rss version=\"2.0\">
<channel>
<title>This is your title</title>
<description>This is your description</description>
<link>This is your link f.e. http://mydomain.com</link>
<language>en-us</language>
<generator>Your Website or company name f.e. Bob's
RSS Feeds</generator>
";
$listing = mysql_query("SELECT *,something.id AS id FROM customers,other_table WHERE other_table.cid=customers.id AND whatever='yes' AND other_table.valid='yes' ");
while ($listings
= mysql_fetch_assoc($listing))
{
$title = str_replace("'", "'", $listings['company']);
$content = stripslashes(htmlspecialchars($listings['services']))."\r\n";
$content .= "Address: ".$listings['address'].",
".$listings['city'].",
".$listings['zip']."
".$listings['state'].",
".$listings['country'];
$url = "go.php?id=".$listings['id'];
echo "
<item>
<title>$title</title>
<description>$content</description>
<link>$url</link>
<pubDate>date("l, j F, Y h:i:s A")</pubDate>
<lastBuildDate>date("l, j F, Y h:i:s A")</lastBuildDate>
</item>
";
}
echo "
</channel>
</rss>";
?>
See also: RSS 2.0 Specification