Bonjour / bonsoir,
désolé pour le titre à rallonge.
Je tente vaillament de parser un fichier xml avec php. Je suis encore en version 4 pour des raisons politiques.
Du coup j'ai un code qui m'affiche correctement la valeur de mes noeuds etc.
Sauf que je travaille en Persan et que là, c'est la catastrophe je me retrouve avec des ????? à la place de mon mot. Dans mon xml j'ai pourtant eu la possibilité d'ajouter mes mots sans soucis.
Mon fichier php est en utf-8 et le xml aussi.
Si encore il me transformait ça en utf-8 je dirais ok !
Je pense que l'erreur doit venir de mon parsing php (que j'ai trouvé tout fait hein...)alors je me permet de vous le mettre ici. Je pense ça car j'arrive bien à récupérer mes mots Persans en passant par flash par exemple.
Merci beaucoup beaucoup pour les gens qui ont une idée et encore pardon pour la longueur de la tartine.
Code : 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 <?php // The XML file that you wish to be parsed $file = "xml_beginner.xml"; // This function tells the parser what to do with the data once it reaches the contents // that appear between tags. function contents($parser, $data){ echo $data; } // This function tells the parser to place a <b> where it finds a start tag. function startTag($parser, $data){ echo "<b>"; } // And this function tells the parser to replace the end tags with "<b><br />" function endTag($parser, $data){ echo "</b><br />"; } // These lines create the parser and then set the functions for the parser to use when // reading the document. $xml_parser = xml_parser_create(''); // Sets the functions for start and end tags xml_set_element_handler($xml_parser, "startTag", "endTag"); // Sets the function for the contents/data xml_set_character_data_handler($xml_parser, "contents"); // Opens the file for reading $fp = fopen($file, "r"); // Read the file and save its contents as the variable "data" $data = fread($fp, 80000); // This if statement does two things. 1) it parses the document according to our // functions created above. 2) If the parse fails for some reason it returns an // error message and also tells us which line the error occured at. if(!(xml_parse($xml_parser, $data, feof($fp)))){ die("Error on line " . xml_get_current_line_number($xml_parser)); } // Free the memory used to create the parser xml_parser_free($xml_parser); // Close the file when you're done reading it fclose($fp); ?>
Partager