Voir aussi
Dans la même rubrique :
Lire nos fichiers de syndication
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
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
Abandonnons RSS 0.91 !
La syndication de contenu RSS
Création à distance d’un fichier de syndication
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Syndication pour phpBBDu même auteur :
Suivi de vos articles
Exécuter un Javascript dans une page SPIP
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
Page contact en PHP 3/3
Accueil du nouveau rédacteur
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 !
Editer plusieurs fichiers de syndication 1/3
Editer plusieurs fichiers de syndication 2/3
Editer plusieurs fichiers de syndication 3/3
Documentation sur SPIP
Ecrire ce qu’on veut dans SPIP
Utiliser les smileys
Joindre un logo à un article
Référencer un site
Quand JavaScript est désactivé... 2/2
Afficher un fil RSS/Atom sur votre site 1/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/2
Menu dépliant pour les rubriques
Quand JavaScript est désactivé... 1/2
Menu de navigation sans JavaScript
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
Un serveur dédié pour les nuls
Menu de navigation sans JavaScript
Le web structuré et sa présentation
Publication Spip : forme et typographie
Quiz en PHP 1/3
Tri et Histogramme
Page contact en PHP 1/3
Créer une liste de QCM
Créer un forum à l’aide de phpBB
Installer un script PHP pour les nuls
Positionnement fixe... même avec Internet Explorer !
Gestion d’une rubrique... en attendant SPIP
Initiation au xhtml - 1
Editer plusieurs fichiers de syndication 2/3
Menu dépliant pour les rubriques
Conseils pour débuter un site web
Page Erreur 404 en PHP
Belles icônes pas chères !
Réaliser un formulaire de contact (1/4)
Initiation au xhtml - 2
Syndication, comment s’y retrouver
Réaliser un formulaire de contact (3/4)
Un lecteur RSS pour votre site 2/2
Mise en place d’un forum : une décision qui doit être mûrement réfléchie
Réaliser un formulaire de contact (2/4)
Initiation au xhtml - 3 : Rappel sur les pointeurs internet (URI/URL)
Contrôler l’accès d’une partie du site avec .htaccess
Réaliser un formulaire de contact (5/4)
Comment faire migrer son site ?
Quand JavaScript est désactivé... 1/2
Editer plusieurs fichiers de syndication 3/3
Page contact en PHP 3/3
La Netiquette des forums
Quiz en PHP 3/3
Proposer plusieurs styles pour votre site
Javascript : n’oubliez pas Mac OS !
Qualité, centres d’intérêt et motivations des participants aux forums médicaux.
Editer plusieurs fichiers de syndication 1/3
MARST - Le Moteur Automatisé de Recherche en Santé au Travail
Page contact en PHP 2/3
Réaliser un formulaire de contact (4/4)
Soigner en ligne, un art impossible ?
Un Editeur RSS pour votre site 2/2
Un Editeur RSS pour votre site 1/2
Analyser les réponses à une liste de questions
Quiz en PHP 2/3
xhtml - 4 : Les entités
Un lecteur RSS pour votre site 1/2
Utilisation de la classe easyRSS
Etablir un questionnaire statistique en ligne
Quand JavaScript est désactivé... 2/2
La syndication de contenu RSS
Lire nos fichiers de syndication
Ecrire ce qu’on veut dans SPIP
Astuce pour les images fréquemment utilisées
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
Exécuter un Javascript dans une page SPIP
Abandonnons RSS 0.91 !
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIPSyndication
Femiweb
Editer plusieurs fichiers de syndication 2/3
Droit-medical.com
Un Editeur RSS pour votre site 1/2
Editer plusieurs fichiers de syndication 1/3
Droit-médical.net
Un Editeur RSS pour votre site 2/2
Fédération des Acteurs de l’Alcoologie et de l’Addictologie
Collège des Médecins Généralistes Enseignants - Université Pierre et Marie Curie
Comité Départemental d’Education pour la Santé des Yvelines
Utilisation de la classe easyRSS
Syndication, comment s’y retrouver
Atoute
Un lecteur RSS pour votre site 1/2
Editer plusieurs fichiers de syndication 3/3
Généralistes 2002
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 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 SPIPSyndiquer tout le texte
Page Erreur 404 en PHP
Quiz en PHP 1/3
Installer un script PHP pour les nuls
Editer plusieurs fichiers de syndication 3/3
Quand JavaScript est désactivé... 2/2
Quand JavaScript est désactivé... 1/2
Proposer plusieurs styles pour votre site
Syndication, comment s’y retrouver
Positionnement fixe... même avec Internet Explorer !
Gestion d’une rubrique... en attendant SPIP
Editer plusieurs fichiers de syndication 2/3
Menu dépliant pour les rubriques
Editer plusieurs fichiers de syndication 1/3
Page contact en PHP 1/3
Page contact en PHP 2/3
Quiz en PHP 2/3
Javascript : n’oubliez pas Mac OS !
Page contact en PHP 3/3
Quiz en PHP 3/3
Menu de navigation sans JavaScript
Afficher plusieurs flux RSS/Atom sur une page
La syndication de contenu RSS
Conseils aux rédacteurs
Présentation de l’espace rédacteurs
Ecrire ce qu’on veut dans SPIP
Lire nos fichiers de syndication
Ecrire ou modifier un article
Astuce pour les images fréquemment utilisées
Afficher un fil RSS/Atom sur votre site 2/3
Les raccourcis typographiques
Reprendre un document Word
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
Placer une image dans un article
Joindre un document à un article
Editez vos flux avec Fil_LE 1/2
Joindre un logo à un article
Editez vos flux avec Fil_LE 2/2
Création à distance d’un fichier de syndication
Exécuter un Javascript dans une page SPIP
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
Afficher un fil RSS/Atom sur votre site 1/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.
Dans un article précédent, j’ai présenté l’utilisation de la classe easyRSS pour permettre à des sites PHP la récupération des informations de fichiers RSS. Dominique WOJYLAC a repris le code et nettement amélioré ce lecteur en réalisant fil_LE. Depuis la version 2.0 [1], cette classe est plus rapide et plus performante, elle reconnait les formats RSS 0.91 1.0 et 2.0 et le format Atom 0.3.
Trois articles permettront de voir ses possibilités :
Le lecteur fil_LE version 2.1, téléchargeable ici, comprend 12 fichiers :
Le lecteur Fil_LE utilise 2 fichiers :
Transférez les 2 fichiers rss_read.inc.php et exemple-1.php sur votre site. Attention, ces fichiers doivent être dans le même répertoire, sinon il faut modifier exemple-1.php à la ligne 54 :
include 'rss_read.inc.php'; |
en indiquant le chemin pour se rendre au fichier rss_read.inc.php
Affichez ensuite la page exemple-1.php mise sur votre site dans votre navigateur et regardez le résultat : l’affichage du fil de syndication du site MacDigit.
Pour afficher le fil de syndication de votre choix, ouvrez le fichier exemple-1.php, et indiquez, à la place des lignes 70 à 79 l’adresse de ce fichier, par exemple :
$rss -> parsefile('http://www.generalistes2002.net/backend.php3',15); |
Le nombre 15 indique que seuls les 15 premiers items seront affichés. Si on n’indique pas de valeur, tous les items du fichier seront affichés.
Vous pouvez aussi renommer la page exemple-1.php, pourquoi pas generalistes_2002.php pour cet exemple ? Il ne reste plus qu’à transférer votre fichier sur votre serveur et regarder le résultat dans votre navigateur.
La classe rss_read retourne les informations récupérées dans le fichier de syndication sous forme de tableaux associatifs :
- Le premier pour channel :
Une fois qu’on a écrit (ligne 103 de exemple-1.php) :
$channel = $rss -> get_channel();
on peut récupérer tous les éléments en les écrivant tout simplement sous la forme : $channel['link'] $channel['title'] $channel['description']
Cela fonctionne également s’il s’agit d’un fichier Atom, les éléments de <feed> sont présentés dans le tableau $channel.
- Le deuxième pour image :
De même, on écrit (ligne 108 de exemple-1.php) :
$image = $rss -> get_image();
on peut ainsi retrouver tous les éléments : $image['link'] $image['url'] $image['width'] $image['height'] $image['title']
- Le troisième pour item :
Après avoir écrit (ligne 113 de exemple-1.php) :
$items = $rss -> get_items();
on peut ainsi avoir tous les éléments : $items['pubdate'] $items['author'] $items['category'] $items['link'] $items['title'] $items['description']
Si un élément est appelé autrement, rss_read le récupère :
<date> <dc:date> <modified> et <published><dc:subject><summary> et <dc:description><dc:creator><dc:rights> et <rights>- Un dernier pour textinput :
Le principe est le même (voir les lignes 143 à 150 de exemple-1.php) pour afficher les éléments, mais les formulaire textinput n’est pas utilisé dans la plupart des fichiers de syndication.
Choisir son affichage :
Une fois compris la récupération des données, si le résultat obtenu n’est pas exactement ce que vous voulez, vous n’avez plus qu’à choisir les éléments que vous voulez présenter (et dans quel ordre ?), puis à les afficher dans un tableau, un div, une liste à puces, des paragraphes... et à les mettre en valeur (style, couleur...) en utilisant les moyens du HTML et des CSS.
Bien sûr, pour cela, il faut être un peu habitué à jongler avec le code, si ce n’est pas votre cas, je vous conseille plutôt de partir d’un exemple de présentation qui vous convient, exemple-1.php ou exemple_a.php qui est expliqué ci-dessous.
Le fichier exemple_a.php montre une autre façon de présenter un fichier de syndication. Je ne vais évoquer ici que les différences avec exemple-1.php.
La présentation est ici sous forme de liste à puces et non pas comme précédemment dans un div, sous forme de paragraphes.
Le format de date choisi est différent, sous forme chiffrée courte "JJ/MM/AAAA" (exemple : 23/06/2005), cette mise en forme est faite à la ligne 44 par : $date = date('d/m/Y', strtotime($date)); au lieu de :
setlocale(LC_TIME, 'fr_FR');
$date = strftime("%A %d %B %Y à %Hh", strtotime($date));
Les conditions comme par exemple if (!empty($items[$i]['pubdate'])) sont remplacées par if (trim($items[$i]['pubdate'])!=''). En apparence, le fonctionnement est le même, mais on évite ainsi l’affichage de caractères inutiles lorsque l’élément existe, mais est vide, ce qui arrive quand le fil contient <pubDate /> <author /> ou <description />
A noter un choix tout à fait personnel pour les liens : echo '<a class="ext" title="Lien externe" href="'.$items[$i]['link'].'" target="_blank">' les liens s’ouvrent dans une nouvelle fenêtre, class="ext" leur donne une couleur différente des liens internes au site, title="Lien externe" est destiné aux non voyants qui ne peuvent pas voir la couleur différente, ils sont ainsi informés par leur logiciel de lecture. Si vous préférez présenter les liens autrement, il est facile de supprimer class="ext" title="Lien externe" de même que le target="_blank".
Si vous mettez le fichier exemple_a.php sur votre serveur, vous remarquerez sous le titre "Articles de Fulmedico - Fédération des utilisateurs de logiciels médicaux et communicants :" une répétition "Fulmedico - Fédération des utilisateurs de logiciels médicaux et communicants" qui correspond au titre et au lien de l’image, mais on ne voit pas de logo ! Ceci est assez fréquent avec des fils RSS générés automatiquement (comme avec SPIP) : le webmestre n’a pas remplacé l’image proposée par défaut par une image réelle. Dans ce cas, tant que le webmestre n’a pas modifié son fichier, il vaut mieux ne pas afficher ceci en bloquant les lignes 77 à 81 par exemple en tapant /* avant et */ après, ce qui neutralisera le code, mais vous permettra de le remettre par la suite.
Comment faire si on veut afficher plusieurs fils sur la même page ?
Vous pourrez voir le code d’un tel fichier avec exemple_b.php. Ce fichier reprend le même code, mais au lieu de le répéter exactement :
$rss = new rss_read();
$encode = $rss -> get_encoding();
$rss -> parsefile('http://www.chemg.org/backend.php3',15);
if ($rss) {
$channel = $rss -> get_channel();
on remplace $rss par une autre variable $fil par exemple, en indiquant bien sûr l’URL du nouveau fil :
$fil -> parsefile('http://www.chemg.org/backend-breves.php3',15);
Autres changements, par rapport à exemple_a.php, cette fois-ci :
J’ai disposé titre et logo sur la même ligne (ce sont les 2 cellules d’un tableau).
L’écriture de certains éléments de $channel (description) et de $image (width) et (height) n’a lieu que s’ils existent, par exemple :
if (trim($channel['description'])!='') { |
J’ai changé le format de date, pour montrer à quel point c’est simple, en remplaçant $date = date('d/m/Y', strtotime($date)); par
setlocale(LC_TIME, 'fr_FR');
$date = ucfirst(strftime("%A %d %B %Y", strtotime($date)));(lignes 43-44) [3].
Si vous regardez le résultat, vous verrez que cela fonctionne très bien, mais que l’affichage des brèves n’est pas très esthétique.
Peux-t-on faire quelque chose pour éviter d’afficher tous ces espaces et les lignes horizontales ? Oui, bien sûr, je l’ai même réalisé, mais si on veut modifier cet affichage, cela mérite bien un deuxième article.
[1] La dernière version disponible est la 2.1.
[2] Le code de rss_read.inc.php ne doit pas être modifié, il ne sera donc pas expliqué dans ces articles, sauf si j’ai plusieurs demandes sur ce sujet.
[3] La fonction ucfirst() met la première lettre de la chaine en majuscule, pour voir les autres possibilités d’affichage avec la fonction strftime(), voir cette page.

j’ai un problème : voici ce que affiche exemple-1.php :
Fatal error : Call to undefined function : xml_parser_create() in ......./public/www/rss_read.inc.php on line 152
problème du coté de l’hébergeur ?
merci
J’ai moi-même effectuer un code PHP permettant d’afficher sur mon site des fils RSS. Mon code étant nettement moins bien structuré, j’ai choisi d’utilisé fil_LE. Il y a que 2 informations que je n’ai pas obtenu avec fil_LE :
1) Comment récupérer la version rss ? Alors que le fil RSS donne : < rss version="2.0" ... > ...
2) De même pour le fil RSS du journal "Le Monde", dans les tags < item > il y a le tag "enclose" qui est structuré ainsi : < enclose url="..." type="image/jpeg" >< /enclose > Comment récupérer l’URL ? Dans items[$i][’enclose’] il n’y a qu’un "blanc" car entre < enclose > et < /enclose > il n’y a rien...
Merci pour votre aide et aussi à Dominique WOJYLAC pour le code existant !
ça avait l’air facile, j’ai essayé mais ça donne ça dans ma page exemple-1.php :
Flux : http://www.liberation.fr/rss.php Encodage : Date modification :
C’est le serveur ? quelqu’un peut m’aider siouplait ?
Très bien votre article, mais il me semble qu’il faudrait mettre à jour en fonction de la dernière version du fichier exemple-1.php de Dominique WOJYLAC, pour que ce que vous décrivez dans le paragraphe ’Afficher le fichier de votre choix’ puisse fonctionner.
Si on conserve les lignes 81 à 86 on obtient ’Fichier rss incorrect ou erreur pendant l’analyse !’
Si on les supprime, ça se passe mieux.
Bonjour.
Les éléments d’un flux RSS sont parfois longs ou même contiennent l’article in extenso tel que sur la page originale
Je n’ai pas trouvé dans tes exemples le moyen de les raccourcir à une longueur donnée sur la page d’accueil (une ou deux lignes par exemple).
Mais peut-être ai-je mal cherché...
Merci de ton aide.
Effectivement, ce n’est pas dans l’article. Si on veut limiter à 200 caractères la longueur de $description, il faut ajouter dans le script :
if (strlen($description) > 200) { |