Je persiste et je signe.
Un lecteur de flux RSS ne regarde pas la nature du fichier ni sa date de création ou d’édition, il parse bêtement du xml selon une syntaxe harmonisée. Le lecteur va donc par exemple aller lire ton fichier toutes les heures, il va pas comparer sa version actuelle et celle disponible, ça serait beaucoup trop lourd pour un système aussi basique, il va donc simplement lire la date de mise à jour de ton flux dans l’entête, et la comparer avec sa dernière date mise en mémoire. Si elle est plus récente, il va parser ton xml et mettre à jour ton flux, sinon il ne va rien faire, ça évite de parser un fichier complet toutes les heures surtout s’il n’a pas été modifié.
Il manque donc dans ton entête la date de publication de ton flux à savoir le tag dans le channel.
Attention aussi, cette dernière à une syntaxe particulière, tu dois afficher la date en format “r” avec la fonction date() de php si je me souviens bien.
Je te donne l’exemple d’un flux que j’ai créé et qui marche très bien avec les lecteurs : ici.
Regarde le code source et tu comprendras.
Au passage, penses à indenter ton code, ton flux est illisible pour le débogage :/!
Et enfin, je sais pas si ton lecteur accepte le format php même si l’entête est en rss. Soit tu génères un xml en sortie, solution pour laquelle j’ai opté pour War-Fr car ça évite une connexion et des requêtes à la BDD à chaque fois que tu ouvres le flux, soit tu utilises un htaccess et réécris ton .php en .xml.
Voilà, je pense que ça devrait résoudre ton problème 
Edité le 09/04/2009 à 11:21