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 :

Modifier fichier xml


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Par défaut Modifier fichier xml
    Bonjour,
    Je voudrais ouvrir et modifier un fichier xml.
    Pour l'ouverture j'utilise simplexml_load_string. Une fois le fichier chargé, quand je fais un echo var_dump pour voir l'objet créé j'ai un souci d'encodage.
    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml = simplexml_load_string(mb_convert_encoding(file_get_contents($Way),"ISO-8859-1","ISO-8859-1"));
    Quand je fais un essai d'encodage avec une chaine de caractère, ça fonctionne.
    Je ne sais pas si c'est possible de travailler sur l'encodage d'un objet créée avec un simplexml_load_string ?

    Merci pour votre aide

  2. #2
    Expert confirmé

    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
    Par défaut
    je t'ai dis que c'est ton fichier a la base qui est pas bon, va falloir remplacer le charset avant de l'ouvrir

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Par défaut
    Oui, je comprends bien mais si je mets le charset en UTF-8 j'ai :

    Input is not proper UTF-8, indicate encoding

    Alors je le ré encode ou ré décode en UTF-8

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml = simplexml_load_string(mb_convert_encoding(file_get_contents($Way),"UTF-8","UTF-8"));
    Et là, il ne m'affiche pas les caractères accentués.
    Donc ce n'est peut être pas de l'UTF-8.
    Comment connaitre l'encodage d'un fichier ?

  4. #4
    Expert confirmé

    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
    Par défaut
    ton fichier c'est d'utf-8 mais l'entête XML c'est marquer iso-8859-1,
    il va donc falloir faire un utf8_decode, lire le xml et ensuite faire un utf8_encode, et au dela de tout ca, il faut verfie l'encodage de ton code en-tète du serveur

    si tu veux savoir en quoi renvoie le serveur, avec firefox tu clique droti dans la page et tu fais "information sur la page", pour un fichier tu peux voir c avec notepad++ ou eclipse (notepad++ -> encodage)
    et en plus de tout ca y'a le charset dans le fichier qui est aussi pris en compte

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Par défaut
    Salut,
    Bon, je pense que le problème d'encodage est résolu grâce à toi.
    J'ai modifier mon default_charset dans mon php.ini en le mettant à UTF-8.
    Et pour charger mon fichier j'utlise la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml = simplexml_load_string(mb_convert_encoding(file_get_contents($Way),"ISO-8859-1","ISO-8859-1"));
    Quand je fais un var_dump, les accents et les apostrophes s'affichent corectement.
    Maintenant il me reste plus qu'à essayer de modifier la valeur d'un noeud.
    Merci beaucoup à tous en tout cas

  6. #6
    Expert confirmé

    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
    Par défaut
    t'as retester avec simplexml_load_file ?

Discussions similaires

  1. Modifier fichier XML
    Par greatalain dans le forum Flex
    Réponses: 1
    Dernier message: 26/11/2007, 02h03
  2. modifier fichier xml en ligne
    Par xeo dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/07/2007, 15h32
  3. Modifier fichier XML
    Par Luffy49 dans le forum C#
    Réponses: 8
    Dernier message: 29/05/2007, 20h37
  4. [C# 2.0] Modifier fichier XML
    Par Mast3rMind dans le forum C#
    Réponses: 1
    Dernier message: 26/04/2007, 17h40
  5. Modifier fichier XML
    Par MrWeb dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/03/2007, 10h13

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