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 :

Fichier XML en UTF-8 corrompu selon la méthode de récupération utilisée [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Fichier XML en UTF-8 corrompu selon la méthode de récupération utilisée
    Bonjour à toutes et à tous,

    après 2 jours de recherches infructueuses, je m'en remets à votre savoir. C'est rare que je cale, mais là....

    Mon problème est tout simple :
    - j'ai un fichier modèle xml, codé en UTF-8, stocké sur mon serveur.

    - le but de mon script est d'ouvrir ce fichier, y apporter des modifications, et le restituer à l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $fichier_entree = "modele.xml";
     $fichier_sortie = "sortie.xml";
     
    $texte = file_get_contents($fichier_entree);
     
    // ici les modifs que j'apporte, mais zappons-les
     
    $fp = fopen ($fichier_sortie, "w+");
     fwrite($fp,$texte);
     fclose ($fp);
    Ca c'est la solution de dépannage qui fonctionne et l'utilisateur peut récupérer son fichier xml en FTP, mais cela m'oblige à stocker le fichier sortie.xml sur le serveur.

    Je voudrais, en utilisant header, que le fichier soit automatiquement récupéré par l'utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $fichier_entree = "modele.xml";
     $fichier_sortie = "sortie.xml";
     
    $texte = file_get_contents($fichier_entree);
     
    // ici les modifs que j'apporte, mais zappons-les
     
    ini_set('default_charset', 'UTF-8');
     header("Content-Disposition: attachment;filename=$fichier_sortie");
     header("Content-Type: application/octet-stream");
     
    echo $texte;
    Ca fonctionne en local sous Windows, mais pas sur mon serveur en php 5.2.11 dédié chez Hosteur.
    Le fichier est tronqué : 326 ko au lieu de 329 ko.
    Le but est de l'ouvrir sous word qui plante à l'ouverture.

    Je soupçonne fortement un problème d'encodage, mais je ne trouve pas...

    Merci de m'avoir lu, votre aide est la bienvenue !

    Olivier.

  2. #2
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    salut

    essaye ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-Type: application/xml')
    echo $texte;
    Franchement, je suis capable du meilleur comme du pire, mais, dans le pire, c'est moi le meilleur.
    Coluche

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour bourvil,

    j'ai testé et ça ne marche pas. Mais merci pour la réponse.

    J'ai également testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Content-type: text/xml; charset=utf-8");
    et au début de mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mb_internal_encoding("UTF-8");

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'ajoute que ce XML modèle a été créé avec Word 2007 et contient des images...

    Le but est de faire une sorte de mailing en liaison avec une base de données.

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    j'ai résolu mon problème :

    les codes caractères 13-10 du fichier modèle devenaient des codes caractères 10.
    Un str_replace a solutionné le problème.
    Encore une sombre histoire de retours Windows/Unix...

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

Discussions similaires

  1. ecrire un fichier xml encodage UTF-8
    Par totoche dans le forum Langage
    Réponses: 4
    Dernier message: 09/10/2009, 17h07
  2. Creation d'un fichier XML avec ASP encoder en UTF-8
    Par freeze_land dans le forum ASP
    Réponses: 6
    Dernier message: 14/02/2007, 10h59
  3. [DOM] Encodage UTF-8 dans fichier XML et PHP
    Par norkius dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/01/2007, 15h44
  4. Réponses: 4
    Dernier message: 31/07/2006, 09h31
  5. [File][UTF-16]comment creer un fichier xml en utf-16?
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 15h40

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