L’article suivant explique comment utiliser la fonction PHP simplexml_load_file() pour afficher un ou plusieurs flux RSS (format XML) sur votre site.
Idéal si vous concevez un site basé sur le contenu d’autres sites via leur flux RSS même si cela n’est vraiment pas conseillé niveau référencement.
Vous pouvez consulter la démonstration ici : Démo
La structure du script sera composée par les fichiers suivants :
- index.php : Affichage du flux RSS
- class.rss.php : La classe qui récupérera les flux RSS
- style.css : Style de la page
class.rss.php
<?php class rss { var $feed; function rss($feed) { $this->feed = $feed; } private function parseFlux() { $rss = simplexml_load_file($this->feed); $rss_split = array(); foreach ($rss->channel->item as $item) { $title = (string) $item->title; // Title $link = (string) $item->link; // Url Link $description = (string) $item->description; //Description $rss_split[] = '<div class="bloc-title-link">» <a href="'.$link.'" target="_blank" title="" >'.$title.'</a><hr></div> '; } return $rss_split; } function displayFlux($numrows,$head) { $rss_split = $this->parseFlux(); if (($rss_split)) { $totalFeed = count($rss_split); if ($numrows > $totalFeed) { $numrows = $totalFeed; } $i = 0; $rss_data = '<div class="bloc"> <div class="bloc-head"> '.$head.' </div> <div class="bloc-title">'; while ( $i < $numrows ) { $rss_data .= $rss_split[$i]; $i++; } $rss_data.='</div></div>'; } return $rss_data; } } ?>
index.php
<html> <head> <meta charset="UTF-8"> <title>Affichage de flux RSS avec PHP</title> <link rel="stylesheet" href="style.css"> </head> <body> <?php include_once('class.rss.php'); $feedlist = new rss('https://www.dootech.fr/feed'); echo $feedlist->displayFlux(10,"Bass-m.me"); $feedlist = new rss('http://feeds.feedburner.com/Debutoriel'); echo $feedlist->displayFlux(10,"Debutoriel"); ?> </body> </html>
style.css
body { font-family: verdana; font-size: 12px;} .bloc{ width:24%; padding:.5%; margin: 0 auto; } .bloc-head { font-size:18px; font-weight:bold; text-align:left; background-color:#0175ae; color:#ffffff; padding:10px; border-radius: 5px 5px 0 0; text-shadow: 2px 2px #000; } .bloc-title { text-align:left; padding:5px; border:1px solid #e1e1e1; border-radius: 0 0 5px 5px; font-size: 0.9em; color: #0175ae; } .bloc-title-link { padding: 0px 0; } hr { border: 1px solid #e1e1e1; } a { color: #0175ae; text-decoration: none;} a:hover { color: #000; text-decoration: none;}
Vous pouvez consulter la démonstration ici : Démo