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

Symfony PHP Discussion :

Lire un flux RSS


Sujet :

Symfony PHP

  1. #1
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut Lire un flux RSS
    Bonjour,

    Je débute sur un petit projet. Je voudrais afficher un flux RSS avec SimpleXML mais je n'arrive à afficher qu'un seul item et je ne comprends pas pourquoi.
    Si quelqu'un voit mon erreur svp ?

    Voici ma fonction toute simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public function rss()
        {
            $rss = simplexml_load_file('https://www.francetvinfo.fr/france.rss');
            return $this->render('project/rss.html.twig', array(
                'rss' => $rss,
        ));
     
        }
    Et la page Twig pour afficher le flux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <ul>
    {% for item in rss %}
        <li>{{ item.item.title }}</li>
        <li>{{ item.item.link }}</li>
        <li>{{ item.item.description }}</li>
        <li>{{ item.title }}</li>
     
    {% endfor %}
    </ul>
    Le problème vient-il de ma boucle for ou de ma fonction ?

    Merci d'avance,
    Librement,

    ANDRE Ani

  2. #2
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Tu peux convertir ton flux RSS en array et le parcourir de là façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $data = simplexml_load_file('https://www.francetvinfo.fr/france.rss');
    $json = json_encode($data);
    $array = json_decode($json, true);
    echo '<pre>';
    print_r($array['channel']['item']);
    exit();

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $json = json_encode($data);
    $array = json_decode($json, true);
    Sinon on évite ce genre d'horreur et on travail avec l'objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $rss = simplexml_load_file('https://www.francetvinfo.fr/france.rss');
    return $this->render('project/rss.html.twig', array(
                'rssItems' => $rss->channel->item,
    ));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {% for item in rssItems %}
        <li>{{ item.title }}</li>
        <li>{{ item.link }}</li>
        <li>{{ item.description }}</li>
    {% endfor %}
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Merci beaucoup grunk ;-)
    Ça fonctionne bien ;-)
    Plus qu'à voir comment limiter le nombre des flux récupérés maintenant.

    Dans la boucle for je suppose, avec Twig, il y a peut-être quelque chose ? Je vais voir.

  5. #5
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par grunk Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $json = json_encode($data);
    $array = json_decode($json, true);
    Sinon on évite ce genre d'horreur et on travail avec l'objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $rss = simplexml_load_file('https://www.francetvinfo.fr/france.rss');
    return $this->render('project/rss.html.twig', array(
                'rssItems' => $rss->channel->item,
    ));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {% for item in rssItems %}
        <li>{{ item.title }}</li>
        <li>{{ item.link }}</li>
        <li>{{ item.description }}</li>
    {% endfor %}
    Effectivement c'est mieux, j'avais testé $rss->channel->item sauf que quand tu fais un dump de ça ça renvoie un unique tableau item, ce qui est loin d'être intuitif

  6. #6
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Effectivement.
    Merci encore ;-)

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

Discussions similaires

  1. Problème pour lire les flux rss en flex
    Par gannher dans le forum Flex
    Réponses: 6
    Dernier message: 18/07/2007, 16h24
  2. [RSS] Lire un flux RSS sur son site perso
    Par nicofonk dans le forum Langage
    Réponses: 5
    Dernier message: 22/11/2006, 22h55
  3. Lire un flux RSS
    Par Houbaa dans le forum C++Builder
    Réponses: 1
    Dernier message: 25/09/2006, 15h05
  4. [ThunderBird] Refuse de lire les flux RSS depuis 3jours
    Par Swoög dans le forum Thunderbird
    Réponses: 4
    Dernier message: 27/06/2006, 21h33
  5. Comment lire un flux rss en asp
    Par ch_lensois dans le forum ASP
    Réponses: 2
    Dernier message: 20/06/2006, 11h32

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