Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
RSS Feed Reader in PHP
<html>
<head>
<title>RSS Feed Reader</title>
</head>
<body>
<?php
//Feed URLs
$feeds = array(
"http://maxburstein.com/rss",
"http://www.engadget.com/rss.xml",
"http://www.reddit.com/r/programming/.rss"
);
//Read each feed's items
$entries = array();
foreach($feeds as $feed) {
$xml = simplexml_load_file($feed);
$entries = array_merge($entries, $xml->xpath("//item"));
}
//Sort feed entries by pubDate
usort($entries, function ($feed1, $feed2) {
return strtotime($feed2->pubDate) - strtotime($feed1->pubDate);
});
?>
<ul><?php
//Print all the entries
foreach($entries as $entry){
?>
<li><a href="<?= $entry->link ?>"><?= $entry->title ?></a> (<?= parse_url($entry->link)['host'] ?>)
<p><?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?></p>
<p><?= $entry->description ?></p></li>
<?php
}
?>
</ul>
</body>
</html>
@kudataz

This comment has been minimized.

Copy link

kudataz commented Feb 20, 2015

how to display max 5 items?

@UnXman

This comment has been minimized.

Copy link

UnXman commented Jan 10, 2016

Good script. Works for a simple application

@pascaldulieu

This comment has been minimized.

Copy link

pascaldulieu commented Oct 2, 2016

How can i take the data output and display it in my index.html page?

@marcelmarnix

This comment has been minimized.

Copy link

marcelmarnix commented Apr 9, 2018


<?php

$NUMITEMS   = 2;

$count = 0;
        //Print all the entries
        foreach($entries as $entry){
        ?>
            <li><a href="<?= $entry->link ?>"><?= $entry->title ?></a> (<?= parse_url($entry->link)['host'] ?>)
            <p><?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?></p>
            <p><?= $entry->description ?></p></li>
       <?php
        }
        if(++$count >= $NUMITEMS) break;
        ?>
@kevinlingier1

This comment has been minimized.

Copy link

kevinlingier1 commented May 12, 2018

<?php

$NUMITEMS   = 2;

$count = 0;
        //Print all the entries
        foreach($entries as $entry){
        ?>
            <li><a href="<?= $entry->link ?>"><?= $entry->title ?></a> (<?= parse_url($entry->link)['host'] ?>)
            <p><?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?></p>
            <p><?= $entry->description ?></p></li>
       <?php
        
        if(++$count >= $NUMITEMS) break;
        }
        ?>

} <-- it must be befor the close php tag ?> else it would not count and break the foreach rule.

@multiomer1997

This comment has been minimized.

Copy link

multiomer1997 commented Oct 16, 2018

Can some help me with add a image with this code from the RSS Feed!

@breaker84

This comment has been minimized.

Copy link

breaker84 commented Aug 30, 2019

ahhhhh....... the best clean and simple rss reader

@hbakhtiari

This comment has been minimized.

Copy link

hbakhtiari commented Feb 29, 2020

Nice. How i can get full text from an short rss link ?

@smartbingari

This comment has been minimized.

Copy link

smartbingari commented Apr 4, 2020

Nice! Please how can I add feed media:thumbnail

@mburst

This comment has been minimized.

Copy link
Owner Author

mburst commented Apr 4, 2020

I would recommend trying to var_dump($entry); in the last foreach loop as a means of debugging what is available on the $entry object

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.