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:
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:
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.