Bonjour à tous et à toutes,

Je débute en PHP, j'ai téléchargé et installé sur mon site MagpieRSS.
L'outil permet de parser (récupérer) les flux RSS d'autres sites et de les afficher sur son site.

Tout se passe bien, je rencontre néanmoins un problème dans la gestion des dates. Soit, les dates retournées sont complètement erronées, du type 01/01 00,00,00 ou j'ai un décalage d'une heure.

J'ai lu que 'mktime' pouvait m'aider mais je ne sais vraiment pas comment l'utiliser.

Voici comment j'appelle feedparsr.php dans ma page principale:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?php
require_once("feedparser.php");
echo
 FeedParser("http://www.football365.fr/rss/filinfo.xml");
?>
Notons que j'ai plusieurs feedparser afin de gérer les différentes formes de dates les voici:

Le premier

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
<?php
require_once("magpierss/rss_fetch.inc");
 
function FeedParser($url_feed, $nb_items_affiches=10)
{
  $rss = fetch_rss($url_feed);
 
  if (is_array($rss->items))
  {
 
   $items = array_slice($rss->items,
    0, $nb_items_affiches);
 
   $html = "<ul>\n";
 
   foreach ($items as $item)
   {
    $date = date("d/m, H:i", strtotime($item['pubdate'])); 
    $html .= "<li><b>";
    $html .= $date." :</b><a href=\"".$item['link']."\"target=\"_blank\">";
    $html .= $item['title']."</a></li>\n";
   }
   $html .= "</ul>\n";
 }
 
 return $html;
}
?>
le second:

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
<?php
require_once("magpierss/rss_fetch.inc");
 
function FeedParser2($url_feed, $nb_items_affiches=10)
{
  $rss = fetch_rss($url_feed);
 
  if (is_array($rss->items))
  {
   $items = array_slice($rss->items,
    0, $nb_items_affiches);
 
   $html = "<ul>\n";
 
   foreach ($items as $item)
   {
    $date = date("d/m, H:i", parse_w3cdtf($item['dc']['date'])); 
    $html .= "<li><b>";
    $html .= $date." :</b><a href=\"".$item['link']."\"target=\"_blank\">";
    $html .= $item['title']."</a></li>\n";
   }
   $html .= "</ul>\n";
 }
 
 return $html;
}
?>
le résultat ici: http://fr.footrss.com

Comme vous pouvez le constater eurosport.fr à un décalage de +1h j'utilise strotime. J'aimerais corriger ce décalage.

Certains n'ont pas de dates car les dates retournées sont fausses, exemple sportstrategies.com, la terminaison du flux est en .php les dates affichées sont toute de cette forme 01/01 00:59...

Pouvez-vous m'aider s'il vous plaît car je sèche

D'avance merci

Kevin