Skip to content

Instantly share code, notes, and snippets.

@mburst
Created March 24, 2013 03:58
Show Gist options
  • Star 34 You must be signed in to star a gist
  • Fork 15 You must be signed in to fork a gist
  • Save mburst/5230448 to your computer and use it in GitHub Desktop.
Save mburst/5230448 to your computer and use it in GitHub Desktop.
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
Copy link

kudataz commented Feb 20, 2015

how to display max 5 items?

@UnXman
Copy link

UnXman commented Jan 10, 2016

Good script. Works for a simple application

@pascaldulieu
Copy link

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

@marcelmarnix
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
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
Copy link

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

@breaker84
Copy link

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

@hbakhtiari
Copy link

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

@smartbingari
Copy link

Nice! Please how can I add feed media:thumbnail

@mburst
Copy link
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

@MuhamadBaneshi
Copy link

would you please write it again with load() function instead of simplexml_load_file()
simplexml_load_file() always make error
thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment