LOAD DATA INFILE, avec modification des champs numériques
Et non :
{ !Voilà c'est réussi, je joint le script complet, il pourra surement servir à d'autres : }
Code:
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
|
//Controle du bon format de fichier
$the_file_name = $_FILES['trans']['name'];
$extension = substr ($the_file_name,-4);
if($extension!= ".csv" )
{
echo"<div align='center'><br/><strong><font color='red'>ATTENTION le format du fichier charge n'est pas <font size='8'>.csv</font> !!! Il est en :<font size='8'>";
echo $extension ;
echo "<br><br>RECOMMENCEZ ... </font></font></strong></div>";
exit ;
}
// Upload du fichier
if(isset($_POST['inserer']))
{
$content_dir= '../../../fichier/jour_trans.csv' ;
$tmp_file = $_FILES['trans']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("le fichier est introuvable");
}
$type_file = $_FILES['trans']['type'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file ) )
{
exit("impossible de copier le fichier dans $content_dir");
}
}
// Appropriation des droits
if(chMod($content_dir, 0666))
// suppression des espaces
$efs = str_replace(" ", "", file_get_contents($content_dir) );
file_put_contents($content_dir, $efs);
//Remplacement des ',' en '.'
$efs_c = str_replace(",", ".", file_get_contents($content_dir) );
file_put_contents($content_dir, $efs_c);
// Inserer les nouvelles valeurs
$requete1 = "LOAD DATA LOCAL INFILE '../../../fichier/jour_trans.csv' INTO TABLE `base_jour` FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES ( |
Curieusement il ne remplace les espaces que dans les champs utiles, sans doute parce que ce sont les seuls champs numériques ayant des espaces,
les espaces des champs texte sont préservés.
Si si , il me les enlève partout ... pas bon du tout.
Je regarde du côté des REGEX ... À BIENTÔT.
Si quelqu'un a une explication technique je suis preneur.
Merci à tous, et Bonne année.
Nimbus