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

PHP & Base de données Discussion :

Convertir un CSV(UCS2) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut Convertir un CSV(UCS2)
    Bonjour tout le monde,

    J'aurai voulu savoir si il etait possible de convertir un CSV(UCS2) en CSV(UTF8) en PHP pour que je puisse importer dans ma base de données.

    J'ai cherché un peu sur le net j'ai vu "Iconv", est ce que ça serai approprier ou est ce que je me plante completement?

    Merci d'avance

    --
    Rodinrott

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Salut,
    Je n'ai jamais eut besoin de convertir l'encodage d'un document, mais peut etre que cette fonction te sera utile :
    http://fr3.php.net/manual/fr/functio...t-encoding.php

    Z.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut Impossibilité d'importé un CSV(UCS2)
    En faite mon probleme se situ au niveau de l'importation du CSV

    Dans le passé on me fournissé un CSV (UTF8) pour l'importé dans ma base tout se passé correctement mais depuis quelque temps on me fournir des CSV (UCS2) et je n'arrive pas a les importés.

    Donc je cherche comment faire:

    Ou changer le mode d'importation
    Ou changer le type de fichier

    je vais regarder ton lien

    Merci a toi

    --
    Rodinrott

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut essai non concluant
    j'ai essayé mais je ne dois pas etre doué

    serait-il possible de convertir le CSV(UCS2) en CVS(UTF8) d'un seul coup?

    exemple:

    convert (fichier.csv,UCS2,UTF8) > fichier_UTF8.csv

    ???

    il n'y a pas de fonction magic :-)

    Merci de votre aide
    --
    Rodinrott

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Par défaut
    A ma connaissance il n'y a pas de fonction permettant de changer l'encodage d'un fichier d'un coup de baguette magique.

    Ce qu'il faut faire, c'est ouvrir ton fichier, récupérer son contenu dans une variable, et traiter cette variable chaîne grâce aux fonctions de conversion de PHP (mb_conv_*)

    tp://www.php.net/manual/fr/book.mbstring.php

    Ceci fait tu créé un nouveau fichier en écriture et tu envoie ton flux vers ce fichier.

    http://fr.php.net/manual/fr/book.filesystem.php

    Voici une trame écrite rapidement, je n'ai pas testé et j'ai fait ça de mémoire sans consulter la doc, donc aucune garantie que ça marche tel quel.
    C'est un code un peu sale mais qui te donne une idée générale de la marche à suivre.

    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
    <?php
     
    //Convertisseur
    $fichier = "monFichier.csv";
    $nouveauFichier = "monNouveauFichier.csv";
     
    //On ouvre le fichier
    if( !( $f = fopen( $fichier, "r" ) ) ) {
        print "Ouverture du fichier ".$fichier." impossible";
    }
    else {
        //Création d'un nouveau fichier vide
        touch( $nouveauFichier ) or die ("Impossible de créer le nouveau fichier" );
     
        //Ouverture du nouveau fichier vide en écriture    
        if( !( $newF = fopen( $nouveauFichier, "a+" ) ) ) {
            print "Ouverture du fichier ".$nouveauFichier." impossible";
        }
        else {
            //Tant qu'on n'est pas lu tout le fichier d'origine...
            while( !feof($f) ) {
                //... on récupère 1024 octets de ce fichier...
                $champ = fgets($f, 1024);
                //... on les convertit en UTF-8...
                $modif = mb_convert_encoding( $champ, "utf-8" );
                //... et on colle la chaîne convertie dans le nouveau fichier.
                fwrite( $newF, $modif );
            }
            //Quand on a fini de lire le premier fichier, on ferme les deux fichiers.
            fclose($f);
            fclose($newF);
        }
    }
     
     
     
    ?>

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Par défaut
    j'ai exactement le meme besoin.

    Je viens de tester ton script et j'ai un warnong sur fopen...

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

Discussions similaires

  1. [Batch] Convertir fichier csv unix en dos
    Par faulk dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 21/07/2010, 10h51
  2. convertir des csv en xml
    Par bastiensoleil dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/04/2010, 08h48
  3. Convertir fichier csv
    Par harlockbaz dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/01/2008, 11h22
  4. [XML] convertir fichier CSV en XML
    Par Yudala dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 16/02/2007, 10h05

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