Affichage date

Affichage date - PHP - Programmation

Marsh Posté le 06-06-2005 à 07:34:05    

Bonjour,
 
Je souhaiterais afficher des news sur mon site via du xml.
Avec la syntaxe ci-dessous par de problème (sauf pour mon hidden)
Mais ce que je voudrais c'est n'afficher pubdate1 qu'une fois si toutes les dates sont les mêmes.
Par exemple si j'ai 6 news aujourd'hui et 4 news hier cela ne doit m'afficher qu'1 fois la date du jour et qu'1 fois la date d'hier.
Ces dates devant etre au-dessus de la liste des news du jour.
 
D'avance merci de votre aide .......
 
 
<?
 require_once "MagpieRSS/rss_fetch.inc";  
 $fichier_xml = "url_xml";  
 $nombre_element = 10;  
 
 $rss = fetch_rss($fichier_xml);  
 
 if (is_array($rss->items)){  
  $liste = array_slice($rss->items, 0, $nombre_element);  
  foreach ($liste as $item ) {  
   $title = $item[title];  
   $url = $item[link];  
   $pubdate = $item[pubdate];  
   $pubdate1 = date("d/m", strtotime($pubdate));  
   $pubdate2 = date("H:i", strtotime($pubdate));  
   echo "<SPAN class=style>".$pubdate1." à ".$pubdate2."</SPAN><BR><a href=".$url." target='_blank'>".$title."</a><BR><BR>";
   echo "<input type='hidden' name='url' value=".$url.">" ;
  }  
 }
 ?>

Reply

Marsh Posté le 06-06-2005 à 07:34:05   

Reply

Marsh Posté le 06-06-2005 à 09:49:27    

pourquoi ne pas mettre un $old_date dans ton foreach qui conserve la date du dernier élément affiché et lors du nouvel enregistrement tu regarde si elle est identique ou non

Reply

Marsh Posté le 06-06-2005 à 10:28:20    

merci pour ta réponse
dans ce cas je te demande un peu d'aide
car comment faire passé une variable (ici $old_date) dans un foreach ?
d'avance merci ...

Reply

Marsh Posté le 06-06-2005 à 14:28:25    

Code :
  1. if (is_array($rss->items)){ 
  2.   $liste = array_slice($rss->items, 0, $nombre_element); 
  3.   $old_date = "";
  4.   foreach ($liste as $item ) { 
  5.    $title = $item[title]; 
  6.    $url = $item[link]; 
  7.    if($pubdate != $old_date)
  8.    {
  9.       $old_date = $pubdate;
  10.       $pubdate = $item[pubdate]; 
  11.       $pubdate1 = date("d/m", strtotime($pubdate)); 
  12.       $pubdate2 = date("H:i", strtotime($pubdate)); 
  13.       echo "<SPAN class=style>".$pubdate1." à ".$pubdate2."</SPAN><BR>";
  14.    }
  15.    echo "<a href=".$url." target='_blank'>".$title."</a><BR><BR>";
  16.    echo "<input type='hidden' name='url' value=".$url.">" ;
  17.   } 
  18. }


 
Ca te vas ?

Reply

Marsh Posté le 06-06-2005 à 15:22:26    

UN GRAND MERCI
je testerais ce soir
cela parait simple au vu de ta soluce
en effet, je n'avais pas bien compris la fonction foreach
cela me semble plus simple now ....
merci à toi .....

Reply

Marsh Posté le 07-06-2005 à 11:05:11    

perso je n'utilise jamais foreach mais je la comprends ....
 
je préfère tout gérer avec des petits for (ou quand je ne peux pas, des while)

Reply

Marsh Posté le 08-06-2005 à 11:32:48    

MERCI pour ta précieuse aide
après une petite modification du script j'ai obtenu ce que je voulais
 
un exemple :  
 
MERCREDI 08 JUIN 2005
10:12  Club-Internet prépare le triple-play et l'ADSL 2+
09:53  ScanSoft annonce PDF Converter 3
09:52  Ecrans LCD : LG signe un gros contrat avec HP
09:44  Un écran LCD à greffer sur vos appareils photo
 
MARDI 07 JUIN 2005
17:53  Les nouvelles offres Wengo officialisées
15:56  Exchange 2003 va supporter le 'Sender ID'
14:33  AIM Mail : des boîtes email bientôt illimitées

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed