Bonjour, lorsque j'essaie d'uploader un fichier xml puis de le parser : ça me met :
Le fichier est d'abord rempli de cette manière :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
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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,
Partager