Importer une liste .txt vers mysql

Le problème exposé dans ce sujet a été résolu.

Ah tu me fais rêver là :) Je suis allé dans PHPMyAdmin mais j'ai pas compris où je devais mettre le nom de chaque colonne. Mais ce qui m'embete le plus, c'est qu'il faudrai que je rajoute des " " un peu partout…

Pas d'autre moyen? Sinon tant pis je me colle à la tache ^^

C'est faisable avec un éditeur de texte (genre Sublime, ou Geany, ou Notepad++) et quelques regex.

  1. chercher \n\n, remplacer par ⅛⅜£⅛
  2. chercher \n, remplacer par ,
  3. chercher ⅛⅜£⅛, remplacer par \n

et hop, t'as transformé le format donné dans ton premier post en du CSV. :)

+0 -0

oh lol je découvre une fonction du notepad ^^ Bon sinon chercher \n\n ça ne fonctionne pas apparemment mais c'est pas trop grave…

Pour résumer, ça doit ressembler à ceci?

1
2
3
4
5
6
7
8
9
idée 1,
info 1,
blabla 1
\n
idée 2,
info 2,
blabla 2
\n
etc...

non, un CSV, ça doit ressembler à ça :

1
2
3
idée 1,info 1,blabla 1
idée 2,info 2,blabla 2
idée 2,info 3,blabla 3

le symbole \n c'est un saut de ligne.

Normalement le CSV peut avoir des noms de colonnes sur la première ligne.

Du coup j'ai pondu un truc dans le genre:

 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
53
54
55
56
57
58
59
60
61
62
63
64
<h1>txt vers csv</h1>
<div>&agrave; copier coller</div>
<br/>

<?php
    #
    #   Version txt to csv AVEC LES TITRES !!!
    #

    $titre1 = 'Type';
    $titre2 = 'Destinataire';
    $titre3 = 'Fda_homme';
    $titre4 = 'Fda_femme';
    $titre5 = 'Fdp_homme';
    $titre6 = 'Fdp_femme';
    # la 7eme ligne est vide.

    $nouvelle_donnee = '';
    $nom_fichier_txt = 'donnee_fdp_test.txt';
    $chiffre_de_redondance = 7; // Nb de colonne (à la ligne) + l'espace s'il existe.
    $encadrement_donnees = '"';
    $separation_donnees = ';';

    $titres_table = $encadrement_donnees . $titre1 . $encadrement_donnees . $separation_donnees;
    $titres_table .= $encadrement_donnees . $titre2 . $encadrement_donnees . $separation_donnees;
    $titres_table .= $encadrement_donnees . $titre3 . $encadrement_donnees . $separation_donnees;
    $titres_table .= $encadrement_donnees . $titre4 . $encadrement_donnees . $separation_donnees;
    $titres_table .= $encadrement_donnees . $titre5 . $encadrement_donnees . $separation_donnees;
    $titres_table .= $encadrement_donnees . $titre6 . $encadrement_donnees;


    if(file_exists($nom_fichier_txt))
    {
        $contenu_fichier_texte = fopen($nom_fichier_txt, 'r'); // r+ Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier. 
        $nb_lecture_de_ligne = 0; //Et on passe aussitot à 1 avec l'incrémentation.

        while (!feof($contenu_fichier_texte)) // Tant que l'on n'est pas à la fin du fichier
        {
            $contenu_de_la_ligne = fgets($contenu_fichier_texte); // On récupère la ligne courante sur laquelle se trouve le pointeur du fichier
            $nb_lecture_de_ligne++; // incrémentation
            if(!($nb_lecture_de_ligne == $chiffre_de_redondance))
            {
                $contenu_de_la_ligne = str_replace(CHR(13).CHR(10),"",$contenu_de_la_ligne); // On supprimer mes retours chariots de ma ligne.
                $nouvelle_donnee .= $encadrement_donnees . $contenu_de_la_ligne . $encadrement_donnees; // Et on transforme la ligne en csv.
                if(!($nb_lecture_de_ligne == ($chiffre_de_redondance - 1))) // Pas de ; à la fin de la ligne.
                {   
                    $nouvelle_donnee .= $separation_donnees;
                }
            }
            else
            {
                $nb_lecture_de_ligne = 0; // Et on passe aussitot à 1 avec l'incrémentation.
                #$nouvelle_donnee .= '\n';
                $nouvelle_donnee .= CHR(13); // pour le retour à la ligne.
            }
            # fputs($contenu_fichier_texte, $_POST["ma_note"]); // On écrit le nouveau message
        }
        fclose($contenu_fichier_texte);
    }
    echo    '<textarea style="width:100%;height:500px">' . 
                $titres_table . CHR(13) .
                $nouvelle_donnee . 
            '</textarea>';
?>

C'est pas parfait mais si jamais ça peut aider quelqu'un, c'est cool. Bonne soirée

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte