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] Lecture flux RSS [Fait]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut [SimpleXML] Lecture flux RSS
    Bonjour,

    Je me lance dans la lecture de flux RSS en php, j'ai donc commencé par lire ce tuto : http://ghostdogpr.developpez.com/articles/rss/

    J'ai deux petits problèmes :

    Problème N°1 :

    J'ai donc dans ma page actualites.php, exactement cet extrait de code :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
     
     
    function lit_rss($fichier,$objets) {
     
    	// on lit tout le fichier
    	if($chaine = @implode("",@file($fichier))) {
     
    		// on découpe la chaine obtenue en items
    		$tmp = preg_split("/<\/?"."item".">/",$chaine);
     
    		// pour chaque item
    		for($i=1;$i<sizeof($tmp)-1;$i+=2)
     
    			// on lit chaque objet de l'item
    			foreach($objets as $objet) {
     
    				// on découpe la chaine pour obtenir le contenu de l'objet
    				$tmp2 = preg_split("/<\/?".$objet.">/",$tmp[$i]);
     
    				// on ajoute le contenu de l'objet au tableau resultat
    				$resultat[$i-1][] = @$tmp2[1];
    			}
     
    		// on retourne le tableau resultat
    		return $resultat;
    	}
    }
     
    $rss = lit_rss("http://www.20minutes.fr/rss/une.xml",array("title","link","description","pubDate"));
     
    echo '<center><table cellpadding="0" cellspacing="0" class="portal_table" width="100%">';
     
    foreach($rss as $tab) {
      echo '<tr><td class="header">'.$tab[0].'</td></tr>';
      echo '<tr><td>'.$tab[2].' <a href="'.$tab[1].'">Lire tout l\'article</a></td></tr>';
      echo '<tr><td><div align=right>posté le '.date("d/m/Y",strtotime($tab[3])).'</div></td></tr>';
    }
     
    echo '</table></center>';
     
    ?>
    Je souhaite récuperer le flux RSS du site 20minutes.fr, hors la description de l'item ne s'affiche pas... (voir http://www.caleoo.com/actualites.php).

    Peut être ça vient du site 20minutes.fr ?
    Si quelqu'un peut tester ce flux xml

    Problème N°2 :

    Je souhaite maintenant récupérer le flux RSS du site DailyMotion, donc toujours avec le même script :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?php
     
     
     
    //FLUX RSS 2
     
    function lit_rss2($fichier,$objets) {
     
    	// on lit tout le fichier
    	if($chaine = @implode("",@file($fichier))) {
     
    		// on découpe la chaine obtenue en items
    		$tmp = preg_split("/<\/?"."item".">/",$chaine);
     
    		// pour chaque item
    		for($i=1;$i<sizeof($tmp)-1;$i+=2)
     
    			// on lit chaque objet de l'item
    			foreach($objets as $objet) {
     
    				// on découpe la chaine pour obtenir le contenu de l'objet
    				$tmp2 = preg_split("/<\/?".$objet.">/",$tmp[$i]);
     
    				// on ajoute le contenu de l'objet au tableau resultat
    				$resultat[$i-1][] = @$tmp2[1];
    			}
     
    		// on retourne le tableau resultat
    		return $resultat;
    	}
    }
     
    $rss= lit_rss2("http://www.dailymotion.com/rss/fr/featured/1",array("title","link","description","pubDate"));
     
     
     
     
     
     
    echo '<center><table cellpadding="0" cellspacing="0" class="portal_table" width="100%">';
     
    foreach($rss as $tab) {
      echo '<tr><td class="header">'.$tab[0].' <a href="'.$tab[1].'"> Voir la video</a></td></tr>';
      echo '<tr><td>'.$tab[2].'</td></tr>';
     
     
     
     
    }
     
    echo '</table></center>';
     
     
     
     
     
    ?>
    Dans ce cas, la lecture de la description fonctionne(voir http://www.caleoo.com/actualites_dm.php), mais à la fin de chaque description apparait les caractères ]]>

    - Voilà j'ai cherché des solutions à ces deux problèmes toute l'après-midi mais en vain, donc je fais appel à vous pour m'aider...

    Peut-être que la fonction que j'ai récupéré sur le tutoriel est un peu trop simple et pas assez souple pour accueilir différents formats/structures... de flux RSS

    Merci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 420
    Points : 15 789
    Points
    15 789
    Par défaut
    essaye plutôt d'utiliser SimpleXML comme indiqué plus bas dans l'article :
    http://ghostdogpr.developpez.com/articles/rss/#LIV

  3. #3
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Citation Envoyé par mathieu Voir le message
    essaye plutôt d'utiliser SimpleXML comme indiqué plus bas dans l'article :
    http://ghostdogpr.developpez.com/articles/rss/#LIV
    Merci bien, ça marche beaucoup mieux avec ça

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

Discussions similaires

  1. Lecture flux RSS externes
    Par snorky94 dans le forum Langage
    Réponses: 9
    Dernier message: 18/04/2014, 10h36
  2. Lecture flux RSS - enclosure
    Par Fxg dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2012, 16h19
  3. [SP-2010] Lecture Flux RSS Sharepoint
    Par Montagna73 dans le forum SharePoint
    Réponses: 3
    Dernier message: 09/03/2011, 09h26
  4. Lecture flux RSS
    Par omelhor dans le forum Langage
    Réponses: 2
    Dernier message: 22/07/2010, 23h12
  5. Lecture d'un flux RSS en C
    Par geexskill dans le forum Réseau
    Réponses: 4
    Dernier message: 28/08/2006, 13h58

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