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] Parser du XML : [function.simplexml-load-file]: I/O warning


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Points : 31
    Points
    31
    Par défaut [SimpleXML] Parser du XML : [function.simplexml-load-file]: I/O warning
    Bonjour,

    disposant d'un accès à un serveur dédié Gentoo chez OVH je dois appeler une api allopass qui renvoie du xml et que je souhaite parser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?  $code_gratuit = $_POST['http://payment.allopass.com/api/freecode.apu?auth=XXXXXXXX&number=1&key=XXXXXX&uid=XXXXXX&max_use=1&xml=1'] ;    {      
    echo "Code : ".$code_gratuit;      // On parse le flux XML   
    $parseur = simplexml_load_file($code_gratuit);      // On récupère le résultat   $code = $parseur->response->codes;      // On affiche le résultat   echo "Code : ".$code;  }    ?>
    Hélas php retourne cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Code :
    Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "" in /home/user/www/allopass-xml.php on line 9
    Code :
    allow_url_fopen est ON .

    Si quelqu'un peut me donner une piste pour avancer je lui en serai gré.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?  $code_gratuit = $_POST['http://payment.allopass.com/api/freecode.apu?auth=XXXXXXXX&number=1&key=XXXXXX&uid=XXXXXX&max_use=1&xml=1'] ;    {
    Bizarre ton POST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $parseur = simplexml_load_file($code_gratuit);
    Débugage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo $code_gratuit ; // Est-ce bien l'URL du XML ??
    $parseur = simplexml_load_file($code_gratuit);
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    $code_gratuit retourne une chaine vide.


    c'est le personnel d'allopass très serviable d'ailleurs qui m'a fournit le script et qui m'assure que c'est la config de mon serveur qui est en cause.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    Donc normal que ça bloque.

    Et comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $code_gratuit = 'http://payment.allopass.com/api/freecode.apu?auth=XXXXXXXX&number=1&key=XXXXXX&uid=XXXXXX&max_use=1&xml=1' ;
    $parseur = simplexml_load_file($code_gratuit);
    ??
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    Merci de ton aide

    le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $code_gratuit ='http://payment.allopass.com/api/freecode.apu?auth=XXXXXX&number=1&key=XXXXXXX&uid=XXXX&max_use=1&xml=1';
     
     
     
    	// On parse le flux XML
    	$parseur = simplexml_load_file($code_gratuit);
     
    	// On récupère le résultat
    	$code = $parseur->response->codes;
     
    	// On affiche le résultat
    	echo "Code : ".$code;
    retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Warning: simplexml_load_file() [function.simplexml-load-file]: <a href="http://payment.allopass.com/api/freecode.apu?auth=XXXXXXX&number=1&key=XXXXXXX&uid=XXXXXXX&max_use=1&xml=1:6:" target="_blank">http://payment.allopass.com/api/free...use=1&xml=1:6:</a> parser error : Premature end of data in tag response line 6 in /home/user/www/php/allopass-xml.php on line 8
     
    Warning: simplexml_load_file() [function.simplexml-load-file]: <response> in /home/user/www/php/allopass-xml.php on line 8
     
    Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/user/www/php/allopass-xml.php on line 8
     
    Warning: simplexml_load_file() [function.simplexml-load-file]: <a href="http://payment.allopass.com/api/freecode.apu?auth=XXXXXXX&number=1&key=XXXXXXX&uid=XXXXXXX&max_use=1&xml=1:6:" target="_blank">http://payment.allopass.com/api/free...use=1&xml=1:6:</a> parser error : Premature end of data in tag response line 1 in /home/user/www/php/allopass-xml.php on line 8
     
    Warning: simplexml_load_file() [function.simplexml-load-file]: <response> in /home/user/www/php/allopass-xml.php on line 8
     
    Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/user/www/php/allopass-xml.php on line 8
    Code :

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    D'ac, et que donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    header('Content-Type: text/plain') ;
    $code_gratuit = 'http://payment.allopass.com/api/freecode.apu?auth=XXXXXXXX&number=1&key=XXXXXX&uid=XXXXXX&max_use=1&xml=1' ;
    echo file_get_contents($code_gratuit) ;
    exit( ) ;
    ?? (à coller tout en haut d'un script, avant tout affichage)
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <response>  
     <status>0</status> 
     <code>008</code> 
     <message>Empty parameters required</message> 
     <response>

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    XML invalide, pas de </response>
    De plus il manque le <?xml version=etc. ?>
    N'oublie pas de remplacer les XXX par tes paramètres lors des tests
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    Oups en effet,

    la réponse reçue est en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <response>  
     <status>1</status> 
     <codes> 
     <code>XXX824</code> 
     </codes> 
     <response>

  10. #10
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    XML incorrecte, toujours pas de </response>.
    Soit tu copies/colles mal ton XML, soit AlloPass ne t'envoie pas les bonnes infos.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    Merci de toute l'aide je vais creuser et je reviendrai poster la réponse si je la trouve

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Je reprends une ancienne discussion parce que j'ai un problème similaire et d'actualité.
    Lors d'un simplexml_load_file j'ai un retour :

    I/O warning : failed to load external entity

    En suivant ce poste j'ai vérifié que le allow_url_fopen est à ON.

    J'avais des soucis d'encodage sur mon fichier. Quand je l'ouvre avec un simplexml_load_string, l'affichage m'a l'air bon (les caractères s'affichent bien) et quand je le fais avec un simplexml_load_file j'ai un warning.

    Voilà ma ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml = simplexml_load_file(mb_convert_encoding(file_get_contents($Way),"ISO-8859-1","ISO-8859-1"));
    Le parsing de mon fichier ne fonctionne donc pas.
    Si vous avez une idée ...

    Merci de votre aide

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    en reviens toujours au même c'est l'encodage d'origine du fichier qui n'est pas bon.

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Le problème est trop complexe pour mon niveau en PHP je crois ...
    Je n'ai pas réussi à mettre en oeuvre la solution que tu m'avais donné.
    C'est dingue, je veux juste modifier une valeure !!!

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Couiin Voir le message
    Le problème est trop complexe pour mon niveau en PHP je crois ...
    Je n'ai pas réussi à mettre en oeuvre la solution que tu m'avais donné.
    C'est dingue, je veux juste modifier une valeure !!!
    c'est le xml qui est foireux, deja mettre dans accents dans les balises c'est pas top, alors si en plus le fichier est mal encodé....

  16. #16
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Couiin Voir le message
    Lors d'un simplexml_load_file j'ai un retour :

    I/O warning : failed to load external entity
    Donne un extrait du XML ou soumet-le en pièce-jointe qu'on puisse voir ça.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  17. #17
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Je voudrais modifier le contenu de la balise <Réponse_tiers> mais je n'arrive pas à afficher son contenu.

    Merci pour votre aide
    Fichiers attachés Fichiers attachés

  18. #18
    Expert confirmé
    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
    Points : 4 853
    Points
    4 853
    Par défaut
    Le nom de l'entité xml ne doit pas des accents...
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  19. #19
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Salut,
    Oui, je sais mais ce n'est pas moi qui créer le fichier xml. Il est créer en automatique par une appli. Je ne peux pas intervenir en amont.

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Le nom de l'entité xml ne doit pas des accents...
    t'as vu ca ou ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/04/2012, 15h07
  2. [SimpleXML] Parser un XML avec SimpleXML_Load_File
    Par mathieu3392 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/10/2007, 11h11
  3. [SimpleXML] Parser du XML dans mon php
    Par onet dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 14/02/2007, 10h09
  4. [SimpleXML] Bug SimpleXML load file
    Par eltados dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 26/07/2006, 13h06
  5. [SimpleXML] Parser un XML et en récupérer des valeurs
    Par mickael.be dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 15/04/2006, 15h08

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