Afficher un flux RSS avec simplexml

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher un flux RSS avec simplexml

Re: Afficher un flux RSS avec simplexml

par Victor BRITO » 21 août 2009, 18:37

Merci pour ce code, ça marche mais pas pour les rss donnés en php (par exemple "http://www.phpfrance.com/tutoriaux/rss.php" ne marche pas). Faut il s'y prendre d'une autre manière pour ceux là ?
Le bout de code donné ci-dessus est valable pour les flux au format RSS 2.0 (le Really Simple Syndication de Dave Winer). Or, celui des tutos de PHPFrance est au format RSS 1.0 (RDF Site Summary, un format plus verbeux issu du RDF) ; pour ce format spécifique, essaie de procéder comme suit :
$items = $xml -> item;
le reste du code demeurant inchangé.

Peut-être ne vais-je pas me hasarder à parler du format Atom (qui est un autre format de syndication de contenu). ;)

Re: Afficher un flux RSS avec simplexml

par katosix » 21 août 2009, 18:29

Merci pour ce code, ça marche mais pas pour les rss donnés en php (par exemple "http://www.phpfrance.com/tutoriaux/rss.php" ne marche pas). Faut il s'y prendre d'une autre manière pour ceux là ?

Re: Afficher un flux RSS avec simplexml

par Victor BRITO » 21 août 2009, 01:05

Utilise une boucle for.
$items = $xml->channel->item;
$nb_items = 5; // Disons que tu ne veux afficher que 5 entrées
for ($i = 0; $i < $nb_items; $i ++)
{
  echo '<li><a href="'.$items[$i] -> link.'">'.utf8_decode ((string) $items[$i] -> title).'</a></li>'
}

Afficher un flux RSS avec simplexml

par katosix » 21 août 2009, 00:39

Bonsoir,

voila alors j'ai mon code pour lister les titres d'un flux mais comment le modifier pour n'afficher qu'un certain nombre de news ? (et pas toutes)
<?php
$xml = simplexml_load_file("lien-du-flux-rss.xml");
echo '<ul>';
foreach($xml->channel->item as $news) {
	echo '<li><a href="'.$news->link.'">', utf8_decode((string) $news->title), '</a></li>';
}
echo '</ul>'; ?>