IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XML] [EXPAT] embrouille de formats utf8 & co


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Par défaut [XML] [EXPAT] embrouille de formats utf8 & co
    bonjour,
    j'ai récupéré un script PHP pour parser un gros fichier xml (10Mo, 50.000 lignes).
    Je l'ai modifié pour qu'il me permette d'entrer des parties définies dans un table mySQL.
    j'ai un problème car le fichier est défini en UTF-8 et quoi que je fasse, la gestion du format est mauvaise.

    mon fichier contient des infos sur les communes de France.

    j'envoie le fichier à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function new_xml_parser($file){
    	global $parser_file;
    	$xml_parser = xml_parser_create(); //création du parseur
    	xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1); //Activation du respect de la casse du nom des éléments XML
    	xml_set_element_handler($xml_parser, "startElement", "endElement"); //Déclaration des fonctions à rattacher au gestionnaire d'événement
    	xml_set_character_data_handler($xml_parser, "characterData");
    	xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");
    	if (!($fp = @fopen($file, "r"))) return FALSE; //Ouverture du fichier
    	// Transformation du parseur en un tableau
    	if (!is_array($parser_file)) settype($parser_file, "array");
    	$parser_file[$xml_parser] = $file;
    	return array($xml_parser, $fp);
    }
    la gestion des data est faite par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Fonction associée à l’événement données textuelles
    function characterData($parser, $data){
    	global $globaldata;
    	$globaldata = $data;
        // iconv('UTF-8', 'ISO-8859-1//IGNORE',)
        // ;mb_convert_encoding(, 'ISO-8859-1', 'UTF-8')
    }
    je rentre globaldata dans un tableau associatif pour chaque commune et lorsque la balise de fin de commune apparaît, je veux rentrer les infos dans la base. Pour le moment je l'écris en HTML.

    Un exemple de mon problème est la ville 'Montluçon' : me donne :
    - 'çon' si j'écris $data tel quel en spécifiant la page HTML en tant qu'UTF8
    - 'çon' si j'écris tel quel avec un HTML ISO-8859-1
    - ' çon' si je transcrit en ISO-8859-1 avec la fonction iconv en HTML ISO-8859-1
    - idem pour une conversion avec mb_convert_encoding

    alors je comprends rien.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Par défaut bon ça y est
    en cherchant à améliorer mon parseur, je suis passé de la veille méthode PHP4 à un DOMXML en PHP5 et là plus aucun problème de'affichage des données brutes ou avec un changement de format.
    Ca fait un petit moment que je me demandais s'il n'y avait pas un problème du côté des fonctions d'extraction que j'utilisais... Ca doit être ça.

    excusez d'avoir trouvé un moyen tout seul et de vous avoir demandé votre collaboration pour rien.

    Bonne nuit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générer un fichier au format UTF8
    Par Sylvano06 dans le forum ASP
    Réponses: 5
    Dernier message: 23/01/2009, 13h26
  2. decoder des entrées en Hexa suivant le format UTF8 et afficher le resultat
    Par Septembre84 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 16/04/2008, 16h10
  3. [XML] [EXPAT] Problème parser XML EXPAT
    Par zan001 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 19/04/2007, 09h48
  4. [C][XML][Expat][XPATH] une Lib au dessus d'expat ?
    Par chronos dans le forum Bibliothèques
    Réponses: 8
    Dernier message: 08/02/2007, 09h50
  5. [XML]les compound documents format xml
    Par monsefovich dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 25/11/2006, 21h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo