Probleme de date pour flux RSS - PHP - Programmation
Marsh Posté le 08-08-2007 à 05:39:47
Le flux originel de guildwars est incorrect, en particulier dû à la date qui n'est pas conforme RFC-822 (la date doit être en anglais), comme le montre le validateur en ligne suivant :
http://feedvalidator.org/check.cgi [...] e/news.rss
Or la fonction strtotime() attend en entrée une chaîne en anglais (jour/mois), d'où le problème.
Extrait du manuel PHP:
strtotime
(PHP 3 >= 3.0.12, PHP 4, PHP 5)
strtotime -- Parse about any English textual datetime description into a Unix timestamp
Solutions possibles :
- signaler à guildwars le problème pour correction.
- soit plus rapidement (mais pas très propre), convertir les jours/mois du français en anglais avant la soumission à strtotime (par exemple "lun" en "Mon", "aoû" en "Aug" etc...) $item["pubDate"]
Marsh Posté le 07-08-2007 à 22:47:44
Salut à tous,
J'ai un problème ...
J'essaie de récupérer le flux RSS : http://fr.guildwars.com/home/news.rss afin de l'afficher sur mon site (page de test : http://www.remain-nameless.fr/rss/news.php )
J'ai bien les articles, les titres, mais j'ai un probleme au niveau des dates elles apparaissent toutes le "07/08/07 6h00" (date du jour, mais l'heure ?)
Il faudrai simplement que les date entre le flux RSS que je souhaite récupérer soit les memes que sur mon site.
J'ai rajouter un D (majuscule) au pubDate car j'ai vu que dans le flux du site d'origine, il est bien noté avec un D majuscule.
Au départ (sans ce D), j'ai une date style 01/01/1970, ensuite j'ai eu la date du jour, mais je n'arrive pas à avoir la date du flux
J'utilise MagpieRSS, voici la partie du code qui pose problème... le fichier feedparser.php
// la date utilisée pour les flux RSS est au format timestamp, il faut donc formater la date
// conversion au format jj/mm/aa. pour plus d'informations, vous conférer au tutorial sur les timestamp
$date = date("d/m/Y H:i",strtotime($item["pubDate"]));
Un exemple du code xml du flux RSS du site guild wars
<title>Guild Wars - News</title>
<link>http://fr.guildwars.com/</link>
<description></description>
<language>en</language>
<managingEditor>ukcommunity@ncbpostal.ncbrighton.nceu</managingEditor>
<copyright>Copyright 2007</copyright>
<pubDate>lun, 06 aoû 2007 19:00:00 +0200</pubDate>
<generator>http://www.pmachine.com/expressionengine/</generator>
<webMaster>ukcommunity@ncbpostal.ncbrighton.nceu</webMaster>
Si quelqu'un connais la solution, merci d'avance