IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] for vs foreach


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 22
    Points
    22
    Par défaut [Tableaux] for vs foreach
    Je voulais reprendre le lecteur rss décrit ici :
    http://ghostdogpr.developpez.com/articles/rss/
    qui marche très bien et semble être d'une simplicité biblique puisqu'il se résume à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
      $rss = simplexml_load_file('http://www.toto.com/rss2.php'); 
      foreach ($rss->channel->item as $item) { 
      echo '<div class="news_box">
               <div class="news_box_title">'.$item->title.'</div>
               <div class="news_box_date">posté le '.date("d/m/Y",strtotime($item->pubDate)).'</div>
               <a href="'.$item->link.'">Lire tout l\'article</a>
            </div>';
      } 
    ?>
    Le problème est que ce script utilise foreach donc parcourt tout le tableau. or moi je voudrais me limiter aux cinq derniers messages postés, donc utiliser quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    	$rss = simplexml_load_file('http://www.toto.com/rss2.php'); 
    	for ($i=0; $i<5; $i++)
    	 {
    	   ????
    	 }
    ?>
    Mais je n'ai pas trouvé comment écrire les instructions qui analysent le tableau $rss. Comment faire apparaître pour chaque message, son titre, sa date et le lien qui permet d'afficher le message complet. Je suppose que c'est trivial, mais j'ai tourné le truc dans tous les sens sans y arriver...

    Merci de votre aide !

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Il suffit simplement d'ajouter un compteur dans ta boucle.

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php  
    $i = 0;
    $rss = simplexml_load_file('http://www.toto.com/rss2.php'); 
    foreach ($rss->channel->item as $item) 
    {
      echo '<div class="news_box">
      <div class="news_box_title">'.$item->title.'</div>
      <div class="news_box_date">posté le '.date("d/m/Y",strtotime($item->pubDate)).'</div>
      <a href="'.$item->link.'">Lire tout l\'article</a>
      </div>';
      $i++;
      if( $i >= 5 )
        break;
    }
    ?>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] for dans foreach
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2006, 18h31
  2. [Tableaux] Problème de foreach avec des checkboxes
    Par nanor21 dans le forum Langage
    Réponses: 10
    Dernier message: 15/05/2006, 01h04
  3. Réponses: 1
    Dernier message: 11/03/2006, 21h19
  4. [Tableaux] la boucle foreach
    Par jeanfrancois dans le forum Langage
    Réponses: 7
    Dernier message: 09/03/2006, 17h29
  5. [Tableaux] Comprendre le foreach()
    Par jexl dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2006, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo