Grab RSS feed with PHP

I would like to share a PHP function for writing out parts of an RSS feed to a page. I used this in the redesign of ryanbosinger.com to show the latest three posts of this blog.

To use it, just call the function where you’d like it show up like so:

<?php getFeed("http://ryanbosinger.com/blog/feed", 3); ?>

The second parameter is the amount of posts to show. It will write out as an unordered list. You can choose to write out different parts of the feed by changing: $x->channel->item[$i]->[name-of-feed-tag]

<?php
function getFeed($feed_url, $posts_to_show) {
 
	try 
	{
		$content = file_get_contents($feed_url);
		$x = new SimpleXmlElement($content);
 
		echo "<ul>";
 
		$i = 0;
 
		while ($i < $posts_to_show){
			echo "<li><a href=\"" . $x->channel->item[$i]->link . "\" title=\"" . $x->channel->item[$i]->title . "\" target=\"_blank\">" . $x->channel->item[$i]->title . "</a></li>";
			$i++;
		}
 
		echo "</ul>";
 
	} 
	catch (Exception $e) 
	{
		echo "<p>The blog feed doesn't seem to be available at the moment...</p>";
	}
}
?>

2 Comments »

  1. This is brilliant, I have been scouring the net for this exact code. Going to use it on my website with some slight modifications. Thanks so much!

    Comment by Josh — February 20, 2010 @ 2:44 am

  2. Excellent. Thank you very much!

    Comment by caoson148 — February 23, 2010 @ 3:45 am

Leave a comment