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 :

Flux distant RSS avec PHP 4.3 [PHP 4]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut Flux distant RSS avec PHP 4.3
    Bonjour,

    J'ai un lien vers un flux RSS : http://philvaness.ning.com/activity/log/list?fmt=rss.

    Je cherche à le lire via ce bout de code sur mon site, mais visiblement il n'arrive pas à lire le flux, alors que ce dernier sous forme d'un fichier xml passe bien ?? Quelqu'un aurait une idée ? Merci

    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
     
    <?php
    function lit_xml($fichier,$item,$champs) {
       // on lit le fichier
       if($chaine = implode("",file($fichier))) {
          // on explode sur <item>
          $tmp = preg_split("^</?".$item.">^",$chaine);
          // pour chaque <item>
          for($i=1;$i<sizeof($tmp)-1;$i+=2)
             // on lit les champs demandés <champ>
             foreach($champs as $champ) {
                $tmp2 = preg_split("^</?".$champ.">^",$tmp[$i]);
                // on ajoute au tableau
                $tmp3[$i-1][] = @$tmp2[1];
             }
          // et on retourne le tableau
          return $tmp3;
       }
    }
     
    function rssReader($fileRSS) {
       $xml = lit_xml($fileRSS,"item",array("title","link"));
       foreach($xml as $row) {
       if ($i < 11){
        $row[0] = str_replace('<![CDATA[', '', $row[0]);
        $row[0] = str_replace(']]>', '', $row[0]);
          $retour = @$retour.'<a href="'.$row[1].'" class="rss">'.$row[0].'</a><br/>';
           if (strlen($row[0])>47) {$i = $i+2;}
          else {@$i++;}
          }
       }
       return $retour;
    }
    echo rssReader('test.xml'); 
    ?>

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut,

    tu peux utiliser les fonctions XML de php 4, ça te seras beaucoup plus facile.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    Si tu peux m'en dire plus je veux bien...

    J'ai l'impression que c'est plus mon lien qui pose pb que le code ??

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    Visiblement pb avec fopen : Warning: fopen(http://philvaness.ning.com/activity/log/list?fmt=rss): failed to open stream: Bad file descriptor in c:\www\test\index2.php on line 15

    J'ai changé le timeout : idem

    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
     
    <?php
     
        $fichier = "http://philvaness.ning.com/activity/log/list?fmt=rss";
        function fonctionTexte($parseur, $texte)
        {
             echo $texte."<br/>";
        }
     
         $parseurXML = xml_parser_create();
     
        xml_set_character_data_handler($parseurXML, "fonctionTexte");
     
        $fp = fopen($fichier, "r");
        if (!$fp) die("Impossible d'ouvrir le fichier XML");
     
        while ( $ligneXML = fgets($fp, 1024)) {
          xml_parse($parseurXML, $ligneXML, feof($fp)) or
                die("Erreur XML");
        }
       xml_parser_free($parseurXML);
        fclose($fp);
    ?>

  5. #5
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut,

    le lien ne pose pas de soucis, tu peux tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lien = 'http://philvaness.ning.com/activity/log/list?fmt=rss';
    $fichier = file_get_contents($lien);
    echo "<pre>".htmlentities($fichier)." </pre>";
    par contre avec les en utilisant les fonctions domxml de php4 ton ressemblerais à
    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
     
    $lien = 'http://philvaness.ning.com/activity/log/list?fmt=rss';
    $fichier = file_get_contents($lien);
    $xml = domxml_open_mem($fichier); 
    //$xml = domxml_open_file($lien);
     
      $racine = $xml->document_element();
      $enfants_niveau_un =  $racine->child_nodes();
     
      // build the array
      foreach ($enfants_niveau_un as $enfant_niveau_un) 
      {
          $enfants_niveau_deux =  $enfant_niveau_un->child_nodes();
          foreach ($enfants_niveau_deux as $enfant_niveau_deux) 
         {
            echo $enfant_niveau_deux->tagname . " : " . $enfant_niveau_deux->get_content() . "<br>";
          }
     
      }
    j'ai pas PHP 4, pas possible de tester.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    Effectivement le lien est ok.

    Par contre il renvoit Fatal error: Call to undefined function: domxml_open_file().

    Je cherche pourquoi !!

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    C'est mieux en activant le domXML !

    Reste un warning avec tagname...je cherche encore

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

Discussions similaires

  1. Lecture d'un flux RSS avec PHP
    Par Springbox dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/02/2011, 21h37
  2. Flux RSS avec PHP : encodage UTF-8 vers ISO-8559-1
    Par eric437 dans le forum Langage
    Réponses: 1
    Dernier message: 03/08/2008, 20h56
  3. [XML] Générer RSS avec PHP
    Par CocoLeNain dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/04/2008, 23h20
  4. Probleme Lecture Fichier RSS avec PHP 4
    Par sirbaldur dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2006, 09h43
  5. [RegEx] Construction d'un fichier XML/RSS avec PHP
    Par sirbaldur dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2006, 16h04

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