[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:
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:
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,