How To Parse RSS Feeds with MagpieRSS

Using MagpieRSS is one of the simplest ways to parse RSS feeds. One use of this is when you want to display updated contents from a site to your website. In this post, we are going to get the Top Stories news of "The Worldwide Leader in News", the CNN. We will just use one of their RSS feed links: http://rss.cnn.com/rss/cnn_topstories.rss. CNN provides all of their RSS feeds links, you can find them in this link http://edition.cnn.com/services/rss/. We just have to agree to their terms of use listed on that page.

How To Parse RSS Feeds with MagpieRSS
Want some feeds?

Step 1: Download MagpieRSS on sourceforge (I got magpierss-0.72) and place it in your web directory. I got the following files:



Step 2: Coding.

index.php

<html>
    <head>
        <title>Parsing RSS feeds with MagPie RSS</title>
    </head>
<body>
<?php

require_once('rss_fetch.inc');

//Specify the URL of RSS feeds
$rss = fetch_rss("http://rss.cnn.com/rss/cnn_topstories.rss");

foreach ( $rss->items as $item ) { //loop through the $rss array which contains the feeds
    echo "<div style='margin: 5px 0 5px 0;'>";
    echo "<div style='font-weight: bold;'>{$item['title']}</div>";
    echo "<div style=''>{$item['description']}</div>";
    echo "</div>";
}
?>
</body>
</html>

If we will take a look at http://rss.cnn.com/rss/cnn_topstories.rss, we have:

On our index.php code, title and description inside $item variable are from the XML tags of RSS feed. If you will view-source http://rss.cnn.com/rss/cnn_topstories.rss, you will see:

This is an item in our RSS feed. The values between title and description tags are echoed in our program. You can also echo the link, pubDate, etc. since those tags are there too.
Step 3: Run the program. The ouput of our code would be something like:

You may want to:

That's it! Now you can embed some contents from an RSS feeds to your website!

Hi! I'm Mike Dalisay, the co-founder of codeofaninja.com, a site that helps you build web applications with PHP and JavaScript. Need support? Comment below or contact [email protected]

I'm also passionate about technology and enjoy sharing my experience and learnings online. Connect with me on LinkedIn, Twitter, Facebook, and Instagram.