2011-09-24 4 views
0

J'essaie de créer un calendrier en php qui affichera les événements sur mon site web. Mon exigence est de remplir le calendrier avec des événements de différents sites Web, qui publient un flux RSS de leurs événements.Remplir un calendrier basé sur les flux RSS

Lors de ma tentative initiale, j'ai analysé les événements basés sur la balise <pubDate> et les ai agrégés dans mon agenda. Cependant, j'ai vite réalisé que cela ne fonctionne pas comme je le veux. Le problème réside dans le fait que les flux RSS provenant de différents sites Web ne sont pas compatibles les uns avec les autres. Par exemple. L'un des sites a publié la date de l'événement dans la balise <pubDate> sous la forme <pubDate>Mon, 25 Jul 2011 21:11:40 GMT</pubDate>.

Un autre l'a dans l'étiquette <title> - comme <title>26 Sep 2011 19:00 : The Life of a Lily</title>.

Un autre site a la date de l'événement dans le tag <Description> en tant que texte flottant.

Je suis vraiment dans une difficulté quant à la façon de les consolider dans un seul calendrier. Quelqu'un peut-il suggérer une façon de le faire? Ou est-ce que je suis parti avec juste maudissant à quel point les flux sont non-standard, en dépit d'être techniquement standard?

Merci beaucoup!

Répondre

0

Vous devez d'abord localiser et analyser la partie date des messages. Vous pouvez le faire en utilisant regex ou avec les fonctions de chaîne de PHP. Ensuite, vous pouvez utiliser PHP et de strtotime(..)date(..) pour normaliser les dates, comme ceci:

$date = '26 Sep 2011 19:00'; 
print date("Y-m-d", strtotime($date)); // prints: 2011-09-26 
+0

Merci rfausak ... Je craignais que je dois faire quelque chose de similaire. :-(. Attendront quelques heures, pour d'autres réponses le cas échéant, sinon marquerait cela comme la réponse. – Aditya