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 :

Conversion de fichier Texte en UTF-8


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Mobilité
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Mobilité
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Points : 35
    Points
    35
    Par défaut Conversion de fichier Texte en UTF-8
    Bonjour,

    je développe un script en PHP pour injecter des fichiers texte dans les bases de données MYSQL.

    Je souhaite trouver une fonction (la + simple possible !) qui convertit le fichier uploadé par l'utilisateur en UTF8.

    La majeur partie des scripts que je trouve sur internet se présente en bloc due à une batterie de test sur le fichier en lui même avant de le convertir.

    Connaissant pertinemment la provenance du fichier (Encoder en ANSI), je cherche une fonction PHP simpliste qui me permettrait de convertir ce fichier texte sans passer par tous ces test sur le fichier.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quel genre de test te gêne ?

    Si tu ne veux absolument aucune sécurité tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $utf8 = utf8_encode(file_get_contents($fichier));

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Mobilité
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Mobilité
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Toujours à ma rescousse Sabotage

    Les test que je veux éviter sont des test pour reconnaître l'encodage du fichier mais moi je sais déjà que ces fichier vont être encoder en ANSI.

    Bon j'ai essayé ta fonction, çà ne marche pas :'( Lorsque je fais une requête SQL "load data infile" le texte dans les champs est tronquée dès qu'il y a un accent ou un caractère spéciale.
    Si je convertis le fichier en UTF8 avec Notepad avant le chargement, le script marche nickel, mais dans un souci d'automatisation j'aimerais bien trouver une solution :s

    Le code si ça peut aider
    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
    49
    50
    51
    52
    if(!empty($_FILES['fil_gul'])) {
              if($_FILES['fil_gul']['error'] > 0) {
                  exit('Erreur n°'.$_FILES['fil_gul']['error']);
              }
              if(is_uploaded_file($_FILES['fil_gul']['tmp_name'])) {
                  if(move_uploaded_file($_FILES['fil_gul']['tmp_name'], $_FILES['fil_gul']['name'])) {
                          echo 'Fichier enregistré' . "<br>";
                          $file = $_FILES['fil_gul']['name'];
                          $utf8 = utf8_encode(file_get_contents($file));
                          $renam = "temp_gul.txt";
                          if(rename($file, $renam))
                          {
                          }
                          else
                          {
                            echo "<p>Problème avec le fichier temporaire (nom).</p>";
                          }
     
                          $filename = '/var/www/market_places/upload/temp_gul.txt';
     
                          if (file_exists($filename)) {
     
                          $trun_gul = $link->query("TRUNCATE gulliver");
                          $query_maj_gul = "LOAD DATA LOCAL INFILE '/var/www/market_places/upload/temp_gul.txt'
                          INTO TABLE gulliver
                          FIELDS TERMINATED BY ';'
                          ENCLOSED BY '\"'
                          LINES TERMINATED BY '\r\n'
                          IGNORE 1 LINES";
     
                          $sql_maj_gul = $link->query( $query_maj_gul);
                            if($sql_maj_gul)
                            {
                              echo "<p>OK</p>";
                              unlink('temp_gul.txt');
                            $count = $link->query("SELECT * FROM gulliver");
                            $count_1 = mysqli_num_rows($count);
                            $ch_count = "UPDATE entries SET gul = ".$count_1;
                            $ins_gul = $link->query($ch_count);
                            // INSERTION DE LA DATE DANS LA TABLE ENTRIES
                            $time_stamp = date('d-m-Y') . " " . date('H:i:s');
                            $time_stamp_sql = "UPDATE entries SET gul_date = '".$time_stamp."'";
                            $query_time_stamp = $link->query($time_stamp_sql);
                            }
     
                  }} else {
                      exit('Erreur lors de l\'enregistrement');
                  }
              } else {
                  exit('Fichier non uploadé');
              }
          }

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code que je t'ai montré ne réecrit pas le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents($fichier,utf8_encode(file_get_contents($fichier)));

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Mobilité
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Mobilité
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Au top ! C'est nickel

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

Discussions similaires

  1. VBA : conversion fichier texte en UTF-8
    Par philou8 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/12/2009, 19h50
  2. [HTML] des fichiers texte en UTF-8
    Par MorganStern dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/06/2008, 19h58
  3. Réponses: 2
    Dernier message: 09/12/2006, 19h01
  4. [VBA-E] fichiers texte en UTF-8
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/11/2006, 22h16
  5. Lecture d'un fichier texte en UTF-8
    Par EL0807 dans le forum Access
    Réponses: 2
    Dernier message: 07/08/2006, 23h54

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