Bonjour,
C'est les yeux larmoyants que je rédige ici mon premier poste aprés plusieurs recherches sans succés.
Je travaille actuellement sur un projet dont le but final est de générer un fichier de flux rss grâce à un formulaire PHP.
Ce fichier est ensuite actualisé par le biais d'autres formulaires.
Pour actualiser le flux, j'utilise la même fonction. C'est simple, je me contente de récupérer les données entrées dans ma base via les formulaires puis j'écrase l'actuel fichier xml pour le remplacer par le contenu récupéré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?php function update_fluxRSS() { $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml .= '<rss version="2.0">'; $xml.= '<channel>'; $xml .='<title>Maintenances et Incidents</title>'; $xml .='<link>http://127.0.0.1:8080/my%20portable%20files/FEEDZF.xml</link>'; $xml .='<description>Ceci est un flux de test.</description>'; $index_selection = 0; $limitation = 25; try { $bdd = new PDO('mysql:host=localhost;dbname=flux_rss', 'root', ''); } catch(Exception $e) {die('Erreur : '.$e->getMessage());} $reponse = $bdd->prepare('SELECT * FROM flux_rss ORDER BY pubDate DESC LIMIT :index_selection, :limitation') or die(print_r($bdd->errorInfo())); $reponse->bindParam('index_selection', $index_selection, PDO::PARAM_INT); $reponse->bindParam('limitation', $limitation, PDO::PARAM_INT); $reponse->execute(); while ($donnees = $reponse->fetch()) { $xml .= '<item>'; $xml .= '<title>'.stripcslashes($donnees['TITLE']).'</title>'; $xml .='<link>'.$donnees['LINK'].'</link>'; $xml .='<pubDate>'.(date("D, d M Y H:i:s O", strtotime($donnees['PUBDATE']))).'</pubDate>'; $xml .= '<description>'.stripcslashes($donnees['DESCRIPTION']).'</description>'; $xml .= '</item>'; } $reponse->closeCursor(); $xml .= '</channel>'; $xml .= '</rss>'; $fp = fopen("FEEDZF.xml", 'w+'); fputs($fp, $xml); fclose($fp); } ?>
Jusqu' ici tout baigne. Les échanges entre les formulaires PHP, ma BDD et le fichier de flux via cette fonction sont impecs.
Problème: lorsque je souhaite consulter mon fichier de flux, il semble garder en mémoire l'ancien fichier. Et les nouvelles données ainsi que les données supprimées ne sont pas affichées.
Ce comportement a été repéré sur le lecteur de flux d'internet explorer 8.0 ainsi que sur le lecteur de flux Feed Notifier. (à noter que Feed Notifier gère bien l'ajout d'items mais pas la suppression).
Ainsi, je suis perdu face à ce problème: est-ce un comportement normal pour les lecteurs de flux? Pourquoi le lecteur de flux garde t-il en mémoire mon ancien fichier xml et ne parviens pas à la différencier du nouveau? Y aurait-il une solution pour identifier un fichier de flux et forcer l'actualisation de mes lecteurs?
Je suis conscient que le problème ne vient probablement pas du PHP mais il est à la base de ce projet.
Merci d'avance à ceux qui m'auront suivi, je ne suis pas certain d'avoir été clair et précis. Je reste dispo pour toutes précisions ajout de sources ou questions.
Partager