• Please take a moment and tell us about your project, or give us a call at (888) 873-3281.
  • Write a short description of your business and services required

Creating a dynamic RSS Feed using PHP and MySQL

Ok, I know that there are plenty of classes, functions, pre-built scripts out there that will help you create an RSS feed to use with your website, but I have built my own and I will share it with all of you. This RSS page, will do a couple of things.

1. Grab the Title of your Article, Grab some Description, Grab the Link to your article and so on and so forth.
2. If by chance, any part of the article is in spanish, it will convert anything with an accent to regular letters so that the feed can actually validate.

You can check out the code here:

* Please note that in order for this to work, the server needs to know that it needs to look at this code that processes as XML…so place the RSS files into ONE folder…call it feeds or rss or something of that nature and edit the .htaccess file and place this next line of code in it:

AddType application/x-httpd-php .xml

————————-
All you have to do is change the parts needed, and rename it to whatever you want.
————————

<? header(‘Content-type: text/xml’); ?>

<? echo “<?xml version=”1.0″ encoding=”iso-8859-1″?”.”>”;
?>

<?

$today = date(“D, j M Y G:i:s T”);

/*print (‘<?xml version=”1.0″?>’);

*/

$rssdate = date(“r”);

print (”

<rss version=”2.0″ xmlns:dc=”http://purl.org/dc/elements/1.1/”>

<channel>

<title>TITLE OF THE FEED </title>

<link>LINK TO ACTUAL WEBSITE </link>

<description>DESCRIPTION OF THE FEED </description>

<language>en-us</language>

<pubDate>$today</pubDate>

<lastBuildDate>$today</lastBuildDate>

<docs>http://blogs.law.harvard.edu/tech/rss</docs>

<generator>YOU CAN PUT YOUR COMPANY NAME </generator>

<managingEditor>EMAIL@YOUREMAIL.COM</managingEditor>

<webMaster>EMAIL@YOUREMAIL.COM</webMaster>

“);

// prepare HTML text for use as UTF-8 character data in XML

function cleanText($intext) {

return utf8_encode(

htmlspecialchars(

stripslashes($intext)));

}

//Will Get snippet of Return Row depending how many words you want.

function ReturnSnippet ($string, $howmany)

{

$currString = explode(” “, $string);

for ($wordCounter=0; $wordCounter<$howmany; $wordCounter++) { echo $currString[$wordCounter].” “;
}

};

# Required to Connect to DB to get the information

# Opens DB Connection OR PLACE THE ACTUAL DB CONNECTION HERE.

require_once (“DBConn.php”);

$db = opendatabase();

# this function will gather all the information from the Authors table and
create a drop down of writers.

function BuildRSSFeed()

{

$sql = mysql_query(“SELECT id, categoryiD, title, body, datepublished
FROM tablename WHERE categoryID = ‘the id of the category you want to see’
ORDER BY id DESC”);

# THIS FOLLOWING FUNCTION WILL ACTUALLY CLEAN UP THE ACCENTS

function cleanUpAccents($str)

{

$patterns = array (“&aacute;”,”&eacute;”,”&iacute;”,”&oacute;”,”&uacute;”,”&Aacute;”,”&Eacute;”,”&Iacute;”,”&Oacute;”,”&Uacute;”);

$replace = array (“a”,”e”,”i”,”o”,”u”,”A”,”E”,”I”,”O”,”U”);

$stringReplaced = str_replace($patterns, $replace,$str);

return str_replace($patterns, $replace,$str);

}

while ($row = mysql_fetch_array($sql))

{

//Tue, 03 Jun 2003 09:39:21 GMT

$today = date(“D, j M Y G:i:s T”);

//$text = cleanText($row[body]);

print (”

<item>

<title>”);

$articleTitle = $row[title];

$title_accent = cleanUpAccents($articleTitle);

$title_final = $title_accent;

echo ($title_final);

print(“</title>

<link>http://www.yourdomain.com/whatever.php?id=$row[id]</link>

<description>”);

$text = ReturnSnippet ($row[body], “10″);

$text_accent = cleanUpAccents($text);

$finaltext = htmlentities(strip_tags($text_accent));

echo ($finaltext);

print (” </description>

<pubDate>$row[datepublished]</pubDate>

<author>EMAIL@EMAIL.com</author>

<guid>http://www.yourdomain.com/whatever.php?id=$row[id]</guid> #
this is a Globaly Unique IDentifier – meaning just put in the link of the article
thats NOT going to change.

</item>n”);

}

};

/*

<?=htmlentities(strip_tags() );
include(‘xml.php’);

$xml = XML_serialize();

*/

echo BuildRSSFeed();

print (”

</channel>

</rss>

“);

?>

Profile-Taylor-DeLuca

Taylor De Luca  Taylor is a seasoned copywriter for many industries. Her specialties include SEO website copywriting, email marketing, PPC ads, blogging, press releases, newsletters, articles, brochures, and case studies.

3 Comments

  1. John

    Reply

    Thank you for a great blog, I will be sure to bookmark it.

  2. Bertram Caparoula

    Reply

    Great rundown.. I like your style!

  3. jasa web

    Reply

    hmm… this is what i want.. thank you so much for this code rss feed..

Leave a Comment

Your email address will never be published or shared. Required fields are marked with an asterisk (*).