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 08/05/2008, 11h20   #1
Membre à l'essai
 
Avatar de Valter
 
Inscription : mars 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 109
Points : 22
Points : 22
Par défaut [DOM] Problème d'encodage UTF-8

Bonjour, lorsque j'essaie d'uploader un fichier xml puis de le parser : ça me met :
Citation:
Warning: DOMDocument::load() [function.DOMDocument-load]: Input is not proper UTF-8, indicate encoding ! Bytes: 0x8E 0x61 0x74 0x69 in /mnt/140/sdc/f/4/0v5/phpM01sfK, line: 1 in /mnt/140/sdc/f/4/0v5/inc/upload.php on line 12
Le fichier est d'abord rempli de cette manière :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
		$full = utf8_encode('<?xml version="1.0" encoding="UTF-8" ?>
<article>
	<name>'.stripslashes(html_entity_decode($_POST['title'])).'</name>
	<author>'.stripslashes(html_entity_decode($_POST['login'])).'</author>
	<web>'.stripslashes(html_entity_decode($_POST['web'])).'</web>
	<speak></speak>
	<level></level>
	<desc>'.stripslashes(html_entity_decode($_POST['desc'])).'</desc>
	<table></table>
	<inside>'.stripslashes(html_entity_decode($_POST['textarea'])).'</inside>
</article>');
		fputs($file, $full);
?>

Puis, une fois sur la machine cliente, il peut être uploadé grâce à upload.php :
Code php :
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
<?php if (isset($_POST['upload'])) {
	$lok = $_FILES['article'];
	$ext = strrchr($_FILES['article']['name'],'.');
	if ($ext != '.xml') { echo '<script type="text/javascript">alert("Sorry, the file you tried to upload isn\'t an .xml strict article."); document.location.href = "index.php";</script>'; }
	else {
		$name = "../system/".$_FILES['article']['name'];
		$file = fopen($name, "a+");
		ftruncate ($file, 0);
		fputs($file, $cont);
		fclose($file);
		$xml = new DomDocument();
		$xml->load($_FILES['article']['tmp_name']);
		$elements = $xml->getElementsByTagName('article');
		$element = $elements->item(0);
		$enfants = $element->childNodes;
		foreach($enfants as $fra) {
			$nam = $fra->nodeName;
			$num = $fra->nodeValue;
			switch ($nam) {
				case "name"; $title = $num; break;
				case "author"; $author = $num; break;
				case "web"; $web = $num; break;
				case "desc"; $desc = $num; break;
				case "inside"; $inside = $num; break;
			}
		}
	}
} ?>

Merci d'avance,
Valter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 17h41   #2
Membre éclairé
 
Développeur Web
Inscription : septembre 2004
Messages : 352
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2004
Messages : 352
Points : 396
Points : 396
Le fichier xml en lui-même doit être encodé en UTF-8 sans BOM.
Chengj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 15h32   #3
Membre à l'essai
 
Avatar de Valter
 
Inscription : mars 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 109
Points : 22
Points : 22
Dans ce cas comment faire ? Puisque le fichier est créer à partir de dom ?
Valter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h48.


 
 
 
 
Partenaires

Hébergement Web