Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/10/2007, 00h30   #1
Membre régulier
 
Étudiant
Inscription : février 2007
Messages : 378
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 378
Points : 90
Points : 90
Par défaut [DOM] probléme d'encodage

Bonjour,

Je crée des nouveaux noeuds dans un fichier XML, mais j'ai un probleme d'encodage , les caractéres comme "é" s'ajoutent bizarrement dans le fichier , pour "é" j'obtient : "&#x9CE0"

voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
 
if( $_POST['id']=="" || $_POST['nom']=="" || $_POST['prenom']=="" || $_POST['statut']=="" || $_POST['pageWebPerso']=="" || $_POST['pageWebGRMIAO']=="" || $_POST['photo']=="" || $_POST['distinctions']=="" || $_POST['implicationprojet']=="" )
{
		echo"il faut remplir toutes les cases";
}
else
{
	$vars = array(
    'id',
	'nom',
    'prenom',
    'statut',
    'pageWebPerso',
    'pageWebGRMIAO',
    'photo',
    'distinctions',
    'implicationprojet'
	);
 
	$dom = new DomDocument();	
	$dom->preserveWhiteSpace = FALSE;
	$dom->formatOutput = TRUE;
	$dom->load('personnes.xml');
 
 
 
	$fiche = $dom->createElement('fiche');
	if (isset($_POST['type']))
	{
			$fiche->setAttribute('type', $_POST['type']);
	}
 
	$dom->documentElement->firstChild->firstChild->appendChild($fiche);
 
	$struct = $dom->createElement('struct');
 
	$fiche->appendChild($struct);
 
	foreach ($vars as $v) {
    if (isset($_POST[$v])) {
       $var = $dom->createElement('var', $_POST[$v]);
       $var->setAttribute('name', $v);
       $struct->appendChild($var);
  	  }
	}
 
	// Sauvegarde
	$dom->save('personnes.xml'); 
 
	echo 'personne ajoutée avec succés';
 
 
}  
?>
que dois je ajouter ?


merci



...
Mo_Poly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2007, 00h46   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
La librairie libxml2, sur laquelle repose l'extension DOM (et d'autres), utilise en interne un encodage UTF-8 pour les données en mémoire. Vous pouvez, utiliser la fonction utf8_encode pour encoder vos données :
Code :
1
2
       $var = $dom->createElement('var', utf8_encode($_POST[$v]));
       $var->setAttribute('name', utf8_encode($v));
Sinon, il me semble que vous pouvez jouer sur la propriété encoding de l'objet DomDocument.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2007, 01h30   #3
Membre régulier
 
Étudiant
Inscription : février 2007
Messages : 378
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 378
Points : 90
Points : 90
merci


...
Mo_Poly est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h17.


 
 
 
 
Partenaires

Hébergement Web