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
xhtml - 4 : Les entités
Réaliser un formulaire de contact (3/4)
Editer plusieurs fichiers de syndication 3/3
Page Erreur 404 en PHP
Comment faire migrer son site ?
Mise en place d’un forum : une décision qui doit être mûrement réfléchie
Quiz en PHP 2/3
Un lecteur RSS pour votre site 2/2
Un Editeur RSS pour votre site 2/2
Webmasters : Comment mieux se référencer ?
Etablir un questionnaire statistique en ligne
Initiation au xhtml - 3 : Rappel sur les pointeurs internet (URI/URL)
Belles icônes pas chères !
Gestion d’une rubrique... en attendant SPIP
Utilisation de la classe easyRSS
Créer une liste de QCM
Syndication, comment s’y retrouver
Réaliser un formulaire de contact (4/4)
Réaliser un formulaire de contact (1/4)
Page contact en PHP 1/3
Créer un forum à l’aide de phpBB
Quiz en PHP 3/3
Quand JavaScript est désactivé... 2/2
Le web structuré et sa présentation
Menu dépliant pour les rubriques
Menu de navigation sans JavaScript
Javascript : n’oubliez pas Mac OS !
Qualité, centres d’intérêt et motivations des participants aux forums médicaux.
Soigner en ligne, un art impossible ?
Un serveur dédié pour les nuls
Analyser les réponses à une liste de questions
Réaliser un formulaire de contact (5/4)
Editer plusieurs fichiers de syndication 2/3
Réaliser un formulaire de contact (2/4)
Quiz en PHP 1/3
Installer un script PHP pour les nuls
Positionnement fixe... même avec Internet Explorer !
Publication Spip : forme et typographie
Page contact en PHP 2/3
Proposer plusieurs styles pour votre site
Quand JavaScript est désactivé... 1/2
Contrôler l’accès d’une partie du site avec .htaccess
La Netiquette des forums
MARST - Le Moteur Automatisé de Recherche en Santé au Travail
Un lecteur RSS pour votre site 1/2
Un Editeur RSS pour votre site 1/2
Comment intégrer Snap Shots à Rapidweaver ?
Page contact en PHP 3/3
Tri et Histogramme
Conseils pour débuter un site web
Initiation au xhtml - 1
Initiation au xhtml - 2
Editer plusieurs fichiers de syndication 1/3
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
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
Collège des Médecins Généralistes Enseignants - Université Pierre et Marie Curie
Droit-medical.com
Un Editeur RSS pour votre site 1/2
Femiweb
Atoute
Généralistes 2002
Comité Départemental d’Education pour la Santé des Yvelines
Fédération des Acteurs de l’Alcoologie et de l’Addictologie
Editer plusieurs fichiers de syndication 1/3
Editer plusieurs fichiers de syndication 2/3
Editer plusieurs fichiers de syndication 3/3
Droit-médical.net
Un lecteur RSS pour votre site 1/2
Syndication, comment s’y retrouver
Utilisation de la classe easyRSS
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
Installer un script PHP pour les nuls
Menu dépliant pour les rubriques
Quiz en PHP 1/3
Page contact en PHP 3/3
Page contact en PHP 2/3
Quiz en PHP 2/3
Quand JavaScript est désactivé... 2/2
Page Erreur 404 en PHP
Editer plusieurs fichiers de syndication 1/3
Editer plusieurs fichiers de syndication 3/3
Quiz en PHP 3/3
Positionnement fixe... même avec Internet Explorer !
Editer plusieurs fichiers de syndication 2/3
Quand JavaScript est désactivé... 1/2
Gestion d’une rubrique... en attendant SPIP
Page contact en PHP 1/3
Syndication, comment s’y retrouver
Javascript : n’oubliez pas Mac OS !
Menu de navigation sans JavaScript
Proposer plusieurs styles pour votre site
Afficher plusieurs flux RSS/Atom sur une page
La syndication de contenu RSS
Conseils aux rédacteurs
Lire nos fichiers de syndication
Présentation de l’espace rédacteurs
Ecrire ce qu’on veut dans SPIP
Astuce pour les images fréquemment utilisées
Afficher un fil RSS/Atom sur votre site 1/3
Ecrire ou modifier un article
Afficher un fil RSS/Atom sur votre site 2/3
Les raccourcis typographiques
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
Editez vos flux avec Fil_LE 1/2
Joindre un document à un article
Editez vos flux avec Fil_LE 2/2
Joindre un logo à un article
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 ,
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