Bonjour,
Je suis actuellement à la recherche d'un script me permettant d'afficher les actualités de différents sites web, via leurs flux RSS.
Je me suis donc tourné vers SimpeXML, j'arrive bien a afficher les actualités d'un seul flux avec ce script :
<?php
try{
if(!@$fluxrss=simplexml_load_file('http://www.alsacreations.com/rss/')){ throw new Exception('Flux introuvable');}
if(empty($fluxrss->channel->title) && empty($fluxrss->channel->description) &&empty($fluxrss->channel->item->title)) throw new Exception('Flux invalide');
$i=0;
$nb_affichage = 10;
echo '<ul>';
foreach($fluxrss->channel->item as $item){
echo '<li><a href="'.(string)$item->link.'">'.(string)$item->title.'</a><p>'.(string)$item->description.'</p> <i>publié le'.(string)date('d/m/Y à G\hi',strtotime($item->pubDate)).'</i></li>';
if(++$i>=$nb_affichage)
break;
}
echo '</ul>';
}
catch(Exception $e){
echo $e->getMessage();
}
Le problème est que l'orsque j'ajoute un deuxième flux comme ceci, le message d'erreur flux invalide s'affiche :
if(!@$fluxrss=simplexml_load_file('flux1.xml', 'flux2.xml'))
{ throw new Exception('Flux introuvable');}
merci pour votre aide.
Pour les personnes que sa intéressent j'ai utilisé une BDD pour arrivé à mes fins !
Bonjour,
la fonction simplexml_load_file() ne fonctionne que pour 1 flux.
Il vaut mieux que tu créés une fonction ou que tu dupliques ton code pour le faire avec plusieurs flux
Un truc comme ça
function FluxXml($flux) {
try{
if(!@$fluxrss=simplexml_load_file($flux)){ throw new Exception('Flux introuvable');}
if(empty($fluxrss->channel->title) && empty($fluxrss->channel->description) &&empty($fluxrss->channel->item->title)) throw new Exception('Flux invalide');
$i=0;
$nb_affichage = 10;
echo '<ul>';
foreach($fluxrss->channel->item as $item){
echo '<li><a href="'.(string)$item->link.'">'.(string)$item->title.'</a><p>'.(string)$item->description.'</p> <i>publié le'.(string)date('d/m/Y à G\hi',strtotime($item->pubDate)).'</i></li>';
if(++$i>=$nb_affichage)
break;
}
echo '</ul>';
}
catch(Exception $e){
echo $e->getMessage();
}
}
echo FluxXml('http://www.alsacreations.com/rss/');
J'ai créé une fonction qui se nomme FluxXml, comme ça je peux afficher le contenu d'un flux.
En reprenant mon code, j'ai mis à la fin
echo FluxXml('http://www.alsacreations.com/rss/');
et tu peux faire
echo FluxXml('http://www.alsacreations.com/rss/');
echo FluxXml('http://www.alsacreations.com/rss/flux5');
echo FluxXml('http://www.grafikart.fr/rss/');
pour afficher plus facilement plusieurs flux
Le problème est que je souhaite afficher tous les flux en fonction de leurs date de publication.
Dans ton exemple, il affichera le flux1, ensuite le flux2, etc...