nIQnutn

Le numérique libre en contre-addiction

Afficher un flux RSS sur vore site

Voici un petit truc pour afficher un flux RSS sur votre PluXML ou n'importe quel site web.

On peut utiliser un flux externe comme celui d'un site d'info ou un flux personnel comme Shaarli, Wallabag, ou n'importe quel flux que vous avez envie de publier. Cela permet d'afficher et d'intégrer élégamment les articles sur votre site et sans avoir à diffuser l'URL.

J'ai ajouté un petit sommaire pour faciliter la lecture mais ça n'a rien d'indispensable. Avec l'affichage d'un flux pouvant contenir 25 articles, je trouve ça plutôt pratique.

Il suffit simplement de placer le code PHP dans votre page et modifier la variable $url avec l'URL que vous voulez afficher. On peut également limiter le nombre de résultat à afficher sur la page.


code
Code PHP
<?php 
$url= "http://flux.rss/a-afficher"; // lien du flux RSS
$nb="15"; // nb d'article à lire sur le flux

setlocale (LC_TIME, 'fr_FR.utf8','fra'); 
$html=""; 
$sum="";

$xml = simplexml_load_file($url); 
for($i = 0; $i < $nb; $i++){
	$title = $xml->channel->item[$i]->title; 
	$guid = $xml->channel->item[$i]->guid; 
	$link = $xml->channel->item[$i]->link; 
	$pubDate = $xml->channel->item[$i]->pubDate; 
	$pubDate = strftime("%d %B %Y", strtotime($pubDate)); // transformation du format de la date
	$description = $xml->channel->item[$i]->description; 

		// si le flux contient moins de $nb artciles
		if (isset($title)) {
		$html .= "$title"; 
		$html .= "<br />$pubDate - <a id=\"$i\" href='$link'>$link</a>"; 
		$html .= "<br />$description";
		$html .= "<hr />"; 
		$sum.="<li><a href=\"#$i\">$title</a></li>";
		}
} 
// Sommaire
echo "<div class=\"sommaire\"> Sommaire: <ol>$sum</ol></div>";
// Articles du flux
echo "<div class=\"feed\">$html</div>"; 
?>

Pour améliorer l'affichage et la présentation des résultats, il faut modifier les lignes 19 à 23 pour ajouter les titres, div, class et si besoin modifier le CSS de votre site.
Voici le résultat avec le flux RSS de PluXML

3 commentaires

nom |

Bonjour,

Merci pour cet info. C'est exactement ce que je cherchais ;)

Mathieu |

Bonjour, je voulais savoir comment limiter le nombre de caractère de la description dans le flux.

merci d'avance.

Mathieu

nIQnutn |

@Mathieu :
regarde du coté de mb_substr

Fil RSS des commentaires de cet article

Écrire un commentaire