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 :

Récupérer flux à partir d'un fichier XML


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Récupérer flux à partir d'un fichier XML
    Bonjour, j'ai un petit problème lors de la récupération des données provenant d'une URI.

    Voici l'URI :

    http://www.ipoker.com/next-tournamen...ournaments.XML

    J'arrive sans problème à le lire avec Internet explorer, mais impossible de l'ouvrir avec "fopen", "file", ou "file_get_contents".

    J'ai d'autre URI de ce genre, avec le même type de contenu, et pourtant j'arrive très bien à les traiter avec "fopen".

    Voici un bout de code pour y voir plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $flux = 'http://www.ipoker.com/next-tournaments/cdpoker-next-tournaments.XML';
     
    $fp = fopen($flux, "rb");
    if (!$fp) {
        echo "Impossible d'ouvrir le flux RSS<br />";
    }
    else {
        echo "Lecture du flux RSS : <br />";
        while ( $ligneXML = fgets($fp, 1024) ) {
            echo htmlentities($ligneXML);
        }
    }
    D'où peut venir le problème ? le .XML en majuscule dans l'URI ? des problèmes de droits ? mon incompétence ?

    Merci à tous.

  2. #2
    Expert éminent sénior

    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
    Points : 17 777
    Points
    17 777
    Par défaut
    C'est parce que le serveur ne reconnaît pas votre client (et ne sait pas s'il gère convenablement ce type de contenu). Vous pouvez jouer sur les options de contexte lors du fopen (ou file_get_contents avec les versions 5 uniquement) ou plus simplement via le paramètre user_agent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14');
    echo file_get_contents('http://www.ipoker.com/next-tournaments/cdpoker-next-tournaments.XML');

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    C'est excellent, ça à fonctionné au quart de tour !

    J'aurai jamais trouvé, d'ailleurs malgré ton explication j'ai du mal à comprendre le pourquoi du comment. Si tu as des info sur le fonctionnement, je suis preneur.

    Une dernière question : quelles auraient été les options de contexte du fopen ?

    En tout cas, merci énormément !


Discussions similaires

  1. Réponses: 1
    Dernier message: 06/08/2007, 10h39
  2. Réponses: 6
    Dernier message: 05/08/2007, 07h15
  3. [DTD] Créé un DTD à partir d'un fichier XML
    Par Oberown dans le forum Valider
    Réponses: 5
    Dernier message: 14/12/2006, 11h55
  4. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  5. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39

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