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

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] Lire le premier élément d'un flux


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut [SimpleXML] Lire le premier élément d'un flux
    Bonjour,

    J'ai récupérer un code sur developpez.com qui apprend à lire un flux rss sur une page php.

    Seul problème, sur ma page d'accueil, je ne souhaite afficher que le dernier article du flux, et il me les liste tous.
    Je pense que le problème vient de foreach, mais je ne connais pas son contraire?

    Voici le code en question:

    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('essai.xml'); 
      foreach ($rss->channel->item as $item) { 
      echo '<div>
               <h4>'.$item->title.'</h4>
               <div class="news_box_date">post&eacute; le '.date("m/d/Y",strtotime($item->pubDate)).'</div>
               '.$item->description.' <a href="'.$item->link.'">Lire tout l\'article</a>
            </div>';
      } 
    ?>
    Par la même occasion, je me retrouve avec des choses bizarres à l'écran du type: L'événement

    Mon fichier php contient cette entête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    Et mon fichier RSS celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8" ?>
    <rss version="2.0">


    Merci pour votre aide

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par will83
    Seul problème, sur ma page d'accueil, je ne souhaite afficher que le dernier article du flux, et il me les liste tous.
    Je pense que le problème vient de foreach, mais je ne connais pas son contraire?
    foreach est prévu pour tous les parcourir. Pour aller à un élément précis il faut y accéder comme un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $rss = simplexml_load_file('essai.xml');
    $item = $rss->channel->item[count($rss->channel->item) - 1]; // Pour le dernier
    // $item = $rss->channel->item[0]; // pour le premier
      echo '<div>
               <h4>'.utf8_decode($item->title).'</h4>
               <div class="news_box_date">post&eacute; le '.date("m/d/Y",strtotime($item->pubDate)).'</div>
               '.utf8_decode($item->description).' <a href="'.$item->link.'">Lire tout l\'article</a>
            </div>';
    Si je ne me suis pas trompé.

    Citation Envoyé par will83
    Par la même occasion, je me retrouve avec des choses bizarres à l'écran du type: L'événement

    Mon fichier php contient cette entête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    Et mon fichier RSS celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8" ?>
    <rss version="2.0">
    Dû à l'usage d'encodages différents, il est nécessaire de procéder à la conversion. La fonction utf8_decode devrait convenir dans le cas présent.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut
    Merci pour cette réponse rapide, ça semble fonctionner, à une exception près, il lit le dernier item, et non le premier?

    Pourtant mon flux est bien formaté?

    Bizarre

    Merci encore

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut
    Citation Envoyé par will83 Voir le message
    Merci pour cette réponse rapide, ça semble fonctionner, à une exception près, il lit le dernier item, et non le premier?

    Pourtant mon flux est bien formaté?

    Bizarre

    Merci encore
    Ok, autant pour moi, j'ai pas lu le commentaire PHP!

    Merci

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

Discussions similaires

  1. [SimpleXML] Lire les attributs des éléments
    Par van-bom dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 13/09/2008, 00h36
  2. Sélectionner le premier élément d'une ComboBox
    Par deubal dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/11/2005, 11h32
  3. [xslt] Limiter un for-each aux x premiers éléments
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 18/11/2005, 17h09
  4. Est-il possible de retourner au premier élément ?
    Par magic8392 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/09/2005, 15h15
  5. Réponses: 2
    Dernier message: 11/01/2005, 15h10

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