Voir aussi
Dans la même rubrique :
Editer plusieurs fichiers de syndication 1/3
Editer plusieurs fichiers de syndication 2/3
Editer plusieurs fichiers de syndication 3/3
Un Editeur RSS pour votre site 1/2
Un Editeur RSS pour votre site 2/2
Un lecteur RSS pour votre site 1/2
Un lecteur RSS pour votre site 2/2Du même auteur :
Reprendre un document Word
Les Centres de santé
Quiz en PHP 1/3
Quiz en PHP 2/3
Quiz en PHP 3/3
Comité Départemental d’Education pour la Santé des Yvelines
Les sites des Médecins Maîtres-Toile
Joindre un document à un article
Placer une image dans un article
Les raccourcis typographiques
Ecrire ou modifier un article
Présentation de l’espace rédacteurs
Conseils aux rédacteurs
Lire nos fichiers de syndication
Page contact en PHP 3/3
Syndication, comment s’y retrouver
Afficher plusieurs flux RSS/Atom sur une page
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Installer un script PHP pour les nuls
Javascript : n’oubliez pas Mac OS !
Page contact en PHP 1/3
Page contact en PHP 2/3
Positionnement fixe... même avec Internet Explorer !
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIP
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Documentation sur SPIP
Abandonnons RSS 0.91 !
La syndication de contenu RSS
Ecrire ce qu’on veut dans SPIP
Utiliser les smileys
Joindre un logo à un article
Référencer un site
Création à distance d’un fichier de syndication
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Quand JavaScript est désactivé... 2/2
Afficher un fil RSS/Atom sur votre site 1/3
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Menu dépliant pour les rubriques
Quand JavaScript est désactivé... 1/2
Menu de navigation sans JavaScript
Exécuter un Javascript dans une page SPIP
Astuce pour les images fréquemment utilisées
Gestion d’une rubrique... en attendant SPIP
Page Erreur 404 en PHP
Utilisation de la classe easyRSS
Proposer plusieurs styles pour votre siteMême indexation :
Technique Web
Page Erreur 404 en PHP
Qualité, centres d’intérêt et motivations des participants aux forums médicaux.
Belles icônes pas chères !
Exécuter un Javascript dans une page SPIP
Quiz en PHP 1/3
Un Editeur RSS pour votre site 1/2
MARST - Le Moteur Automatisé de Recherche en Santé au Travail
Soigner en ligne, un art impossible ?
Analyser les réponses à une liste de questions
Conseils pour débuter un site web
Ecrire ce qu’on veut dans SPIP
xhtml - 4 : Les entités
Menu dépliant pour les rubriques
Menu de navigation sans JavaScript
Comment intégrer Snap Shots à Rapidweaver ?
Initiation au xhtml - 1
Réaliser un formulaire de contact (2/4)
Contrôler l’accès d’une partie du site avec .htaccess
Editer plusieurs fichiers de syndication 2/3
Page contact en PHP 3/3
Initiation au xhtml - 2
La Netiquette des forums
Un lecteur RSS pour votre site 2/2
Réaliser un formulaire de contact (3/4)
Un serveur dédié pour les nuls
Mise en place d’un forum : une décision qui doit être mûrement réfléchie
Créer une liste de QCM
Webmasters : Comment mieux se référencer ?
Comment faire migrer son site ?
Astuce pour les images fréquemment utilisées
Publication Spip : forme et typographie
Réaliser un formulaire de contact (5/4)
Etablir un questionnaire statistique en ligne
Quiz en PHP 2/3
Syndication, comment s’y retrouver
Quiz en PHP 3/3
Editer plusieurs fichiers de syndication 3/3
Installer un script PHP pour les nuls
Positionnement fixe... même avec Internet Explorer !
Tri et Histogramme
Quand JavaScript est désactivé... 2/2
Proposer plusieurs styles pour votre site
Réaliser un formulaire de contact (1/4)
Le web structuré et sa présentation
Page contact en PHP 1/3
Editer plusieurs fichiers de syndication 1/3
Initiation au xhtml - 3 : Rappel sur les pointeurs internet (URI/URL)
Créer un forum à l’aide de phpBB
Page contact en PHP 2/3
Gestion d’une rubrique... en attendant SPIP
Quand JavaScript est désactivé... 1/2
Réaliser un formulaire de contact (4/4)
Un lecteur RSS pour votre site 1/2
Javascript : n’oubliez pas Mac OS !
Un Editeur RSS pour votre site 2/2
La syndication de contenu RSS
Lire nos fichiers de syndication
Afficher un fil RSS/Atom sur votre site 1/3
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Syndication pour phpBB
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Création à distance d’un fichier de syndication
Abandonnons RSS 0.91 !
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIPSyndication
Fédération des Acteurs de l’Alcoologie et de l’Addictologie
Un lecteur RSS pour votre site 1/2
Un Editeur RSS pour votre site 1/2
Généralistes 2002
Editer plusieurs fichiers de syndication 1/3
Comité Départemental d’Education pour la Santé des Yvelines
Atoute
Editer plusieurs fichiers de syndication 3/3
Editer plusieurs fichiers de syndication 2/3
Syndication, comment s’y retrouver
Droit-médical.net
Un Editeur RSS pour votre site 2/2
Collège des Médecins Généralistes Enseignants - Université Pierre et Marie Curie
Femiweb
Afficher plusieurs flux RSS/Atom sur une page
La syndication de contenu RSS
Lire nos fichiers de syndication
Afficher un fil RSS/Atom sur votre site 1/3
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Création à distance d’un fichier de syndication
Abandonnons RSS 0.91 !
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIP
Accueil
Boite à Outils
Syndication de contenu
Syndication de contenu - Archives
Utilisation de la classe easyRSS
Cet article a été publié le 12 mai 2004, il est actuellement complètement dépassé et n’a plus qu’un intérêt "historique". Pour récupérer des fichiers de syndication, je vous conseille plutôt de voir Afficher un fil RSS/Atom sur votre site 1/3, 2/3 et 3/3.
Cet article fait suite à l’article "La syndication de contenu RSS" qui présente la syndication de contenu, ses avantages et quelques méthodes simples de mise en œuvre [1].
Il comment utiliser la classe easyRSS créée par Philippe RODIER pour permettre à des sites PHP la récupération des informations de fichiers RSS [2].
J’ai eu un peu de mal à trouver la classe easyRSS : plusieurs sites en parlaient, mais les liens de téléchargement étaient obsolètes, alors pour vous éviter cette difficulté, voici le dossier d’origine de Philippe RODIER avec tous ses fichiers, à télécharger zippé : easyRSS.zip.
Ce dossier comprend :
Voici le code de l’exemple donné dans le script exemple1.php. Je n’en ai pas vu l’intérêt : s’il faut faire un copié-collé dans le script pour mettre les informations de ses derniers articles, autant le faire directement dans un fichier RSS ou .txt ou avec un formulaire.
Par contre, j’ai été satisfait d’easyRSS pour la récupération des données des fichiers RSS, en particulier pour sa mise en œuvre, beaucoup plus simple que d’autres scripts que j’ai essayés puis abandonnés.
J’ai voulu pousser easyRSS un peu plus loin, afin de lui permettre de récupérer les informations sur l’auteur, la date et la description des articles. Vous pouvez télécharger ce fichier modifié : easyRSS.inc.zip et voir la page documentation.html avec le texte de Philippe RODIER auquel j’ai ajouté quelques variables.
Il ne reste plus qu’à réaliser un script PHP pour remettre en forme les données dans la page où on veut présenter les derniers articles du site dont on a récupéré le fichier RSS.
Voici le code de l’exemple donné dans le script exemple2.php [3].
Et maintenant un autre exemple, la page Actualité thématique Allergologie du site du CYES. Tout d’abord, j’ai supprimé la présentation dans un tableau. Ensuite, j’ai ajouté la présentation de l’auteur et la description des articles.
J’ai mis en forme en fonction de la feuille de style du site CYES. Je me suis alors aperçu de la présence dans la description de la page d’image (logo) de balises <p> perturbant la présentation et de caractères mal codés, j’ai donc mis en place la fonction preg_replace() pour remplacer les caractères gênants.
Voilà le code de ce script, colorisé pour en faciliter la lecture à la façon de Dreamweaver [4] :
<?php
include('easyRSS.inc.php');
// je n'ai pas changé $phpinfo_rss j'aurais aussi
bien pu l'appeler $allergo_rss (à condition d'appliquer cette variable
partout à sa place)
$phpinfo_rss = new easyRSS();
// c'est là qu'on indique le fihier RSS à
parser et le nombre max d'articles à afficher :
$phpinfo_rss -> parsefile("http://www.allergique.org/backend.php3",
15);
// affichage du titre du site (utilise la class="site"
de la feuille de style du site) :
echo '<a href="'.$phpinfo_rss
-> get_channel_link().'"
target="_blank" class="site" title="Lien externe">'.$phpinfo_rss
-> get_channel_title()."</a><br
/><br /><ul>\n";
$nbnews = $phpinfo_rss ->
get_num_items();
// récupération
du nombre d'articles
$news_author = $phpinfo_rss ->
get_items_author();
// récupération
de l'auteur des articles
$news_title = $phpinfo_rss ->
get_items_title();
// récupération
des titres des articles
$news_link = $phpinfo_rss ->
get_items_link();
// récupération
des liens des articles
$news_description = $phpinfo_rss ->
get_items_description();
// récupération
des descriptions des articles
// on remplace les caractères < et >
par < et >
$search = array ("/</","/>/");
$replace = array ("<",">");
$news_description=preg_replace($search,$replace,$news_description);
// on supprime les images <p> et on redonne un code
d'affichage correct à certains caractères spéciaux :
$avant = array ("'<img.*?>'si","'<p.*?>'si","'</p>'si","'&.*?;'si");
$apres = array (" ","
"," ","&.*?;");
$news_description=preg_replace($avant,$rapres,$news_description);
// on utilise une boucle pour afficher les différents
articles (ici en utilisant la feuille de style avec les class vert et ext) :
for($i=1;$i<=$nbnews;$i++)
{
echo '<li><span class="vert">'.$news_author[$i].' :</span>
<a href="'.$news_link[$i].'"
target="_blank" class="ext" title="Lien externe">';
echo $news_title[$i]."</a> :<br
/>\n".$news_description[$i]."</li>\n";
}
echo "</ul>";
?>
Pour un site qui n’indique pas le nom de l’auteur, ou pour les brèves (Exemple : Actualité thématique : Santé mentale), il suffit de supprimer la ligne : $news_author = $phpinfo_rss -> get_items_author();
et de retirer : <span class="vert">'.$news_author[$i].' :</span>
ce qui donne pour la boucle d’affichage des articles :
for($i=1;$i<=$nbnews;$i++)
{
echo '<li><a
href="'.$news_link[$i].'"
target="_blank" class="ext" title="Lien externe">'.$news_title[$i]."</a> :<br
/>\n".$news_description[$i]."</li>\n";
}
echo "</ul>";
De la même façon, pour un site qui n’indique pas de description de l’article (ou si vous ne voulez pas pour un site afficher cette description), exemple : Actualité thématique : Actualité santé, il suffit de supprimer la ligne : $news_description = $phpinfo_rss -> get_items_description();
et de retirer : "</a> :<br />\n".$news_description[$i]. ce qui donne pour la boucle d’affichage des articles :
for($i=1;$i<=$nbnews;$i++)
{
echo '<li><span
class="vert">'.$news_author[$i].' :</span>
<a href="'.$news_link[$i].'"
target="_blank" class="ext" title="Lien externe">'.$news_title[$i]."</a></li>\n";
}
echo "</ul>";
Pour ne pas être trop long, je n’ai pas voulu donner trop d’explications sur le code qui contient déjà quelques commentaires (en orange), je développerais s’il y a des demandes.
Si on veut afficher la date de publication de l’article, il faut ajouter cet élément dans le script de traitement, avec en plus pour le traitement des variables :
$news_date = $phpinfo_rss -> get_items_date(); et pour la boucle d’affichage :
for($i=1;$i<=$nbnews;$i++)
{ $date[$i]=strftime("%d/%m/%Y", strtotime($news_date[$i]));
echo '<li>'.$date[$i].' : <span class="vert">'.$news_author[$i].' :</span> <a href="'.$news_link[$i].'" target="_blank" class="ext" title="Lien externe">';
echo $news_title[$i]."</a> :<br />\n".$news_description[$i]."</li>\n";
}
echo "</ul>";La ligne $date[$i]=strftime("%d/%m/%Y", strtotime($news_date[$i])); permet de transformer une date "à l’anglo-saxonne" pour lui donner une allure "à la française". Ici, j’ai choisi d’indiquer le jour de publication, mais pas l’heure exacte, si vous voulez une autre présentation, voyez la page strftime() qui vous donnera le code pour le format choisi.
La classe easyRSS modifiée proposée ici récupère les données du champ <date></date>, mais d’autres fichiers RSS utilisent plutôt <pubDate></pubDate>, il faut alors adapter le code d’easyRSS et du script de traitement en conséquences.
Pour la plupart des utilisateurs, la question se résume à : "Je peux créer des pages en php mais je n’y connaît pas grand-chose. Comment insérer simplement un code qui m’affiche le contenu d’un site tiers disposant d’un fichier RSS ?
Si votre serveur ne permet pas le PHP, il n’y a que les solutions indiquées dans "Syndiquons nous !" qui marchent (Javascript, iframe ou ruse avec page PHP sur un autre serveur).
Si votre serveur permet PHP, il suffit :
Quelques vérifications :
include('easyRSS.inc.php'); en indiquant le chemin exact,"http://www.allergique.org/backend.php3" par le fichier de syndication du site dont vous voulez afficher les derniers articles,$phpinfo_rss -> parsefile("http://www.allergique.org/backend.php3", 15);J’ai supprimé les éléments de code correspondant à la feuille de style du site CYES, j’ai remplacé par :
<h3> pour le nom du site,Si on veut faire plusieurs syndications sur la même page, par exemple, une pour les articles d’un site, l’autre pour les brèves, il ne faut pas remettre exactement le même code sous peine d’avoir un message d’erreur. Voici pour la page Actualité thématique Allergologie le code pour les brèves :
En fait, je n’ai pas remis include('easyRSS.inc.php') ; puisque le fichier est déjà inclus et j’ai remplacé $phpinfo_rss par une autre variable $allergo_rss. En plus, j’ai supprimé la mention "auteur" puisqu’il n’y en a pas pour les brèves.
[1] Avant d’utiliser EasyRSS, je vous conseille de le tester comparativement à MagpieRSS en utilisant le lecteur RSS décrit dans les articles 172 et 173 que vous pouvez essayer ici.
[2] Cet article est maintenant dépassé depuis la sortie en novembre 2004 de easyRSS v1.5, disponible sur PHPSPIRIT, qui inclut les suggestions de cet article. De prochains articles donneront des exemples d’utilisation de cette nouvelle version.
[3] Ce script a été modifié le 1/04/05 afin d’éviter l’affichage d’espaces insécables dans le champ "Description".
[4] Ce code est celui utilisé sur le site du CYES où les liens externes sont signalés et affichés d’une couleur différente que les liens internes. Si ce choix ne vous intéresse pas, vous n’avez pas besoin de : class="ext" title="Lien externe".
[5] Ce paragraphe ne faisait pas partie de cet article au moment de sa publication le 12 mai 2004, il a été ajouté le 8 septembre 2004
[6] Vous avez pour cela dans cette page les liens pour télécharger le fichier d’origine ou celui que j’ai modifié pour récupérer en plus l’auteur et la description des articles ; vous pouvez aussi établir un lien vers ce fichier sur un autre serveur, çà marche aussi.
Bonjour, Je teste easyrss pour récupérer des infos se trouvant dans une base de données Mysql alimentée par plusieurs personnes (des news en fait). Le fichier xml généré est de bonne facture, et tout semble bien marcher. Par contre j’ai un problème avec certains tags html présents dans ces news, en particulier des liens du type http://monsite.com ?i=2&j=5. Là le fichier xml se crée, mais il n’est pas utilisable. Inséré dans un éditeur xml on cnstate des erreurs. Je n’ai pas ce type d’erreurs avec un lien de type:http://monsite.com ?i=2. Quelqu’un a-t-il une idée ?
Merci d’avance, et bravo pour le script. Bernard
J’ai passé à l’acte pour la syndication :
http://www.a-smt.org/accueil.html
http://www.sstpc.org/( avec zfeeder)
Comme lecteur, j’utilise feedreader 2.6 (béta) et feeddemon qui me semble le meilleur et traduit bien la structuration des données.
Mais l’avenir n’est-il pas au format ATOM ?
P.S. A visiter pour la lutte anti-spam : http://dodgeit.com
Denis Teysseyre.
Je viens d’installer easyRSS sur mon site. Le logiciel n’arrive pas a lire la date du ’item’. Quand on publie le feed, c’est plutot la date courante qui est mentionne, pas la date de parution de l’article. Mes tentatives de corriger le script ont ete vaines.
Par ailleurs, j’ai fait quelque modifications au script. La plus interessante est qu’on peut desormais lire et modifier differents fichiers rss sans avoir a modifier les codes du programmes. Ou puis-je partarger ces modifications ?