Bonjour à tous,

j'ai un fichier text qui ressemble a ceci:

AN Xixerella

AN Vila

AN Sornas

AN Soldeu

AN Sispony

AN Segudet

AN El Tarter

AN Sant Julia de Loria

AN Sant Joan de Caselles
sauf que j'ai un peu plus de 2 millions de lignes

et je voudrais transformer ça en un insert sql

pour testé rapidement je n'utilise que les 2 premiers éléments.... (du moins j'essaie)

voila ce que j'ai fait jusqu'a maintenant:

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
<?php
$file = "cities.txt";
$file_w = "cities.sql";
$f = fopen($file, "r");
$nf = fopen($file_w, "w+");
 
for($l = 0; $l<2; $l++){
 
    $line = fgets($f);
    $ex = preg_split('/\s+/', $line);
 
    foreach($ex as $k => $v){
 
        echo $ex[0].' '. $ex[1];
        echo '<br>';
 
        $fw = fwrite($nf, "('" . $ex[0] . "','"  . $ex[1] . "')\r\n");
 
    }
}
 
 
 
 
fclose($f);
fclose($nf);
?>
mais le problem c'est que dans mon fichier cities.sql j'ai ceci

('AN','Xixerella')

('AN','Xixerella')

('AN','Xixerella')

('AN','Vila')

('AN','Vila')

('AN','Vila')

j'ai bien compris que c'était due au 2 qui est dans ma boucle for mais comment je peux fiare autrement?
j'ai aussi essayé des trucs dans ce genre


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
$file = "cities.txt";
$file_w = "cities.sql";
$f = fopen($file, "r");
$nf = fopen($file_w, "w+");
 
while ($line = fgets($f, 4096000))  {
        // echo $line;
    $ex = preg_split('/\s+/', $line);
   // var_dump($ex);die();
    foreach($ex as $k => $v){
 
        // echo $ex[0].' '. $ex[1];
        // echo '<br>';
 
        $fw = fwrite($nf, "('" . $ex[0] . "','"  . $ex[1] . "')\r\n");
    }
}
 
fclose($f);
fclose($nf);
résultat identique. la parcontre j'ai pas compris il me mettait 3 fois les meme choses
mercii