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 1/3
Afficher un fil RSS/Atom sur votre site 2/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 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/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
Soigner en ligne, un art impossible ?
Réaliser un formulaire de contact (5/4)
Quiz en PHP 2/3
Editer plusieurs fichiers de syndication 1/3
Positionnement fixe... même avec Internet Explorer !
Etablir un questionnaire statistique en ligne
Editer plusieurs fichiers de syndication 3/3
Menu de navigation sans JavaScript
Page contact en PHP 3/3
Quand JavaScript est désactivé... 2/2
Tri et Histogramme
Quiz en PHP 1/3
Javascript : n’oubliez pas Mac OS !
Proposer plusieurs styles pour votre site
Utilisation de la classe easyRSS
Initiation au xhtml - 3 : Rappel sur les pointeurs internet (URI/URL)
Editer plusieurs fichiers de syndication 2/3
Réaliser un formulaire de contact (3/4)
Contrôler l’accès d’une partie du site avec .htaccess
Page contact en PHP 2/3
Analyser les réponses à une liste de questions
Initiation au xhtml - 1
Un serveur dédié pour les nuls
Un lecteur RSS pour votre site 1/2
Comment faire migrer son site ?
Menu dépliant pour les rubriques
MARST - Le Moteur Automatisé de Recherche en Santé au Travail
Installer un script PHP pour les nuls
Créer une liste de QCM
Qualité, centres d’intérêt et motivations des participants aux forums médicaux.
Conseils pour débuter un site web
Réaliser un formulaire de contact (1/4)
Initiation au xhtml - 2
Créer un forum à l’aide de phpBB
Réaliser un formulaire de contact (2/4)
La Netiquette des forums
Belles icônes pas chères !
Page contact en PHP 1/3
Le web structuré et sa présentation
Syndication, comment s’y retrouver
Publication Spip : forme et typographie
Réaliser un formulaire de contact (4/4)
xhtml - 4 : Les entités
Gestion d’une rubrique... en attendant SPIP
Page Erreur 404 en PHP
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
Quiz en PHP 3/3
Un Editeur RSS pour votre site 1/2
Un Editeur RSS pour votre site 2/2
Quand JavaScript est désactivé... 1/2
La syndication de contenu RSS
Lire nos fichiers de syndication
Ecrire ce qu’on veut dans SPIP
Afficher un fil RSS/Atom sur votre site 1/3
Astuce pour les images fréquemment utilisées
Afficher un fil RSS/Atom sur votre site 2/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 !
Exécuter un Javascript dans une page SPIP
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIPSyndication
Un Editeur RSS pour votre site 1/2
Syndication, comment s’y retrouver
Utilisation de la classe easyRSS
Femiweb
Droit-medical.com
Un lecteur RSS pour votre site 1/2
Editer plusieurs fichiers de syndication 3/3
Atoute
Fédération des Acteurs de l’Alcoologie et de l’Addictologie
Comité Départemental d’Education pour la Santé des Yvelines
Collège des Médecins Généralistes Enseignants - Université Pierre et Marie Curie
Editer plusieurs fichiers de syndication 1/3
Droit-médical.net
Généralistes 2002
Editer plusieurs fichiers de syndication 2/3
Un Editeur RSS pour votre site 2/2
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
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
Editer plusieurs fichiers de syndication 1/3
Quiz en PHP 2/3
Quand JavaScript est désactivé... 1/2
Page contact en PHP 3/3
Quiz en PHP 1/3
Quiz en PHP 3/3
Installer un script PHP pour les nuls
Menu de navigation sans JavaScript
Menu dépliant pour les rubriques
Gestion d’une rubrique... en attendant SPIP
Positionnement fixe... même avec Internet Explorer !
Quand JavaScript est désactivé... 2/2
Proposer plusieurs styles pour votre site
Editer plusieurs fichiers de syndication 2/3
Editer plusieurs fichiers de syndication 3/3
Syndication, comment s’y retrouver
Page Erreur 404 en PHP
Page contact en PHP 1/3
Javascript : n’oubliez pas Mac OS !
Page contact en PHP 2/3
Afficher plusieurs flux RSS/Atom sur une page
La syndication de contenu RSS
Conseils aux rédacteurs
Ecrire ce qu’on veut dans SPIP
Lire nos fichiers de syndication
Présentation de l’espace rédacteurs
Astuce pour les images fréquemment utilisées
Ecrire ou modifier un article
Afficher un fil RSS/Atom sur votre site 1/3
Les raccourcis typographiques
Afficher un fil RSS/Atom sur votre site 2/3
Reprendre un document Word
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 3/3
Après les articles précédents sur l’utilisation de fil_LE version 2.1 de Dominique WOJYLAC dans les situations courantes, puis les adaptations pour améliorer la présentation, nous allons voir comment mettre en place un système de cache [1].
Ceci concerne les fils de syndication régulièrement présentés sur votre site et offre comme avantages un accès plus rapide au fichier quand celui-ci est dans le cache et moins de demandes à votre serveur.
Lorsqu’on syndique sur son site un flux RSS ou Atom d’une autre source, celle-ci pour des raisons diverses peut se trouver indisponible ou lente d’accès. Pour ne pas avoir à recalculer la page de votre site et à faire une requète sur le flux distant à chaque visite de celle-ci, il suffit d’en mettre tout ou partie en cache. Pour cela on génère un fichier contenant le code HTML résultat de l’analyse du flux distant à intervalles réguliers. Le reste du temps on se contente d’inclure le code généré précédemment.
Voici le déroulement des opérations :
Si (le fichier n'existe pas en cache ou il est trop ancien) { |
Cette solution présente le gros avantage de ne pas avoir à intervenir sur la configuration serveur (impossible pour un serveur mutualisé) ou à avoir recours à un serveur tiers déclenchant la requête sur un fichier PHP designé sur votre site (solution du type cron.hiwit.org ou www.webcron.org). C’est la requète elle-même sur la page qui déclenche sa mise à jour ou non.
Pour parser le flux distant la méthode est la même que celle décrite dans le fichier exemple. Au lieu de faire des echo successifs pour afficher le résultat de l’analyse, on stocke les chaines générées dans une variable unique $data qui sera ensuite écrite dans un fichier placé en cache.
Cet exemple est présenté par Dominique WOJYLAC dans exemple-3.php [3]
Dans le fichier où doit s’afficher le flux RSS il suffira de faire une inclusion du fichier parse_flux.php <?php include 'parse_flux.php'; ?>
N’oubliez pas de créer un dossier "cache" ayant tous les droits en écriture (à adapter suivant l’hébergeur).
Cet exemple suppose que l’on affiche simplement le titre du fil RSS et les titres de chacun des items, il peut être adapté pour un affichage plus complet (date, auteur, description...).
Deuxième exemple de Dominique WOJYLAC : exemple-4.php.
Ici, la mise en cache a été transformée en une fonction :
affiche_fil($url_fil, $fichier_cache, $delai, $nombre_items); |
avec :
$url_fil = URL du fil rss à syndiquer
$fichier_cache = nom du fichier mis en cache
$delai = durée en heure entre deux rafraichissement du fichier en cache (possibilité de mettre des heures décimales - 1.5 par exemple -)
$nombre_items = nombre maximum d’items à afficher.
Il est également possible d’afficher plusieurs fils syndiqués sur la même page avec mise en cache.
Ces exemples fonctionnent très bien, mais ne répondent pas exactement à ce que je voulais faire, je vous propose donc une adaptation d’exemple-3.php qui permet une présentation différenciée pour chaque fichier (selon les éléments que l’on veut présenter et le nettoyage adapté du code de l’élément description pour avoir un affichage satisfaisant).
Le résultat est illustré dans exemple_e.php, téléchargeable en bas de cette page.
Je vais partir du code du fichier exemple_d.php présenté dans l’article précédent et expliquer ce que je change :
Tout d’abord je décide d’afficher 2 des fils de syndication du site allergique.org : http://www.allergique.org/backunan.php3 et http://www.allergique.org/backend-breves.php3.
La fonction nettoyage() [4] est plus simple :
function nettoyage($description) { |
Ensuite, çà change :
// chemin relatif vers le fichier cache (le répertoire "cache" doit être autorisé en écriture) |
Les commentaires dans le code sont assez clairs pour qu’il n’y ait rien à ajouter.
Puis on continue comme on le faisait dans exemple_d.php à indiquer les informations que l’on veut montrer de $channel $image et de $items, à ceci près qu’on lieu de l’afficher dans la page avec echo on le met dans la variable $data [5]
On continue de la même manière pour un autre fil (les brèves d’allergique.org), et après la fin :
$data .= "</ul>\n"; |
on ajoute pour finir et permettre la mise en cache des données :
$fd = fopen($file_cache, "w"); |
Le dernière ligne de code permet l’affichage des informations dans la page.
Voilà donc trois solutions de mise en cache, à vous de choisir.
Volontairement dans cet article en 3 parties, je n’ai pas cru nécessaire d’expliquer tout le script des exemples, car les commentaires de Dominique WOJYLAC dans le code sont clairs, et il y a aussi la documentation. Si on me signale des points à éclaircir, je modifierais les articles en conséquence.
[1] Pour bien comprendre cet article, il faut avoir lu les deux précédents.
[2] Ces explications reprennent celles de Dominique WOJYLAC dans exemple-3.php.
[3] Rappel, tous les fichiers du lecteur fil_LE version 2.1 peuvent être téléchargés ici.
[4] La fonction nettoyage() permet un meilleur affichage et la réparation de certaines erreurs, voir l’article précédent.
[5] Pour ajouter au fur et à mesure, il suffit d’écrire $data .= "élément à mettre à la suite"; c’est le point avant le signe égal qui indique que cela s’ajoute à la valeur précédente de $data
Attention, si echo était écrit avec des virgules pour ajouter des éléments, il faut remplacer par des points, sinon vous aurez une erreur PHP.

Bonjour
merci pour le script que j’ai pu installer
Toutefois je voudrais remonter plusieurs flux J’ai tout essayé mais cela bloque constamment a la ligne 11 du fichier rss.read.inc.php
Avez vous une solution ?
Je suis débutant
Cordialement
Bonjour ,
bravo pour votre article , net et precis tout fonctionne , seul point noir (a mon niveau) , j ai un probleme d’affichage , les caracteres speciaux et accents s’affichent mal , comment faire merci
Bonjour Dans cette partie du code tu peux tout arrangerfunction clean_text($text, $encodage = ’’) $avant = array( ’<’, ’>’, ’"’, ’&’, ’é ’ ) ; $apres = array( ’<’, ’>’, ’"’, ’&’,’é’ ) ; $text = str_replace($avant, $apres, $text) ;
Moi j’ai fait modifier le é qui se présentait mal
Bonne chance