2015-01-07 15:23:30 +00:00
< ? php
2015-09-17 19:57:13 +00:00
// --- Define path to application directory
2015-01-07 15:23:30 +00:00
defined ( 'APPLICATION_PATH' )
2015-09-17 19:57:13 +00:00
|| define ( 'APPLICATION_PATH' , realpath ( __DIR__ . '/../../application' ));
2015-01-07 15:23:30 +00:00
2015-09-17 19:57:13 +00:00
// --- Define application environment
2015-01-07 15:23:30 +00:00
defined ( 'APPLICATION_ENV' )
2015-09-17 19:57:13 +00:00
|| define ( 'APPLICATION_ENV' , ( getenv ( 'APPLICATION_ENV' ) ? getenv ( 'APPLICATION_ENV' ) : 'production' ));
2015-01-07 15:23:30 +00:00
2015-09-17 19:57:13 +00:00
// --- Ensure library/ is on include_path
2015-01-07 15:23:30 +00:00
set_include_path ( implode ( PATH_SEPARATOR , array (
2015-09-17 19:57:13 +00:00
realpath ( APPLICATION_PATH . '/../../library' ),
2015-01-07 15:23:30 +00:00
get_include_path (),
)));
2015-09-17 19:57:13 +00:00
require_once realpath ( __DIR__ . '/../../vendor/autoload.php' );
2015-01-07 15:23:30 +00:00
2015-09-17 19:57:13 +00:00
// --- Create application, bootstrap, and run
$application = new Zend_Application ( APPLICATION_ENV , APPLICATION_PATH . '/configs/application.ini' );
2015-01-07 15:23:30 +00:00
try {
$opts = new Zend_Console_Getopt (
//Options
array (
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
'help|?' => " Aide. " ,
'fichier=s' => " Nom du fichier complet : version " ,
'affiche=s' => " Affiche resultat traitement "
));
$opts -> parse ();
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
catch ( Zend_Console_Getopt_Exception $e )
{
echo $opts -> getUsageMessage ();
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
//Usage
if ( count ( $opts -> getOptions ()) == 0 || isset ( $opts -> help ))
{
echo $opts -> getUsageMessage ();
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
#########################################################
##### Presence te taille du fichier #####
#########################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$fichier = $opts -> fichier ; // $fichier contient chemin/qqchose.csv
$nomfichier = basename ( $fichier ); // $nomfichier contient qqchose.csv, basename retourne un array donc un tableau ayant comme valeur chacun des
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// fichiers (chemain absolu) contenu dans le repertoir $directory, ici le repertoir contient normalement une seul fichier a la fois , donc $fichier[]
$fic = $fichier ; // On definti notre variable $fic comme etant notre fichier.
#########################################################
##### Teste de validité du nom du fichier #####
#########################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$detect1 = strstr ( $nomfichier , 'valo_commentaires_' );
$detect2 = strstr ( $nomfichier , 'valo_formules_' );
$detect3 = strstr ( $nomfichier , 'scores_formules_' );
$detect4 = strstr ( $nomfichier , 'scores_commentaires_' );
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $detect1 !== false or $detect2 !== false or $detect3 !== false or $detect4 !== false )
{
echo " \n " . " Nom du fichier ok " . " \n " ;
}
else
{
echo " \n " . " le nom du fichier est incorrect " . " \n " ;
echo " \n " . " le nom du fichier doit obliqatoirement etre compose de la sorte : " . " \n " ;
echo " \n " . 'valo_commentaires_' . " \n " ;
echo " \n " . " ou " . " \n " ;
echo " \n " . 'valo_formules_' . " \n " ;
echo " \n " . " ou " . " \n " ;
echo " \n " . 'scores_formules_' . " \n " ;
echo " \n " . " ou " . " \n " ;
echo " \n " . 'scores_commentaires_' . " \n " ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
Exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
#########################################################
##### On indique si le fichier est present ou non #####
#########################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if (( file_exists ( $fichier )))
{
echo " \n Fichier $nomfichier au format csv trouve a l'emplacement prevu : \n " ;
echo " \n " . " La taille du fichier est de : " . filesize ( $fic ) . " octets " . " \n " ;
$file = true ;
}
else
{
echo " \n " . " Pas de fichier .csv present a l'endroit indique " . " \n " ;
$file = false ;
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
#########################################################
##### taille du contenu du fichier #####
#########################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
# déclaration variables :
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$fileopen = fopen ( $fic , 'r' );
$contenufichier = fgetcsv ( $fileopen );
$nblignes = 0 ;
$cnbl = count ( $nblignes );
$fific = file ( $fic ); // retourner le contenu du fichier dans une chaîne de caractères.
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
foreach ( $fific as $line_num => $line )
{
$nblignes ++ ;
}
echo " \n " . " le fichier contient " . $nblignes . " lignes. " . " \n " ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
#########################################################
##### Routage vers commentaires ou formules #####
#########################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
#variables :
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$doublon = 0 ; // On initialise la variable doublon.
$row = 0 ; // On initialise les lignes.
$verif = array () ; // creation d'un tableau
$nom_fic = basename ( $fic ) ;
2015-07-28 14:39:52 +00:00
$col3 = 0 ;
2015-01-07 15:23:30 +00:00
#########################################################
##### Identification du type de fichier #####
#########################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
//On commance rechercher si le nom du fichier contient "COMMENTAIRE" pour 4 colonnes sinon 2 colonnes
if ( strstr ( $nom_fic , 'commentaires' ))
{
$nbcol_cle = 4 ;
}
else
{
$nbcol_cle = 2 ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// Si $fic est bien ouvert on commence le traitement.
if ( $file = true )
{
$fileopen2 = fopen ( $fic , " r+ " );
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $fileopen2 )
{
$contenufichier = fgetcsv ( $fileopen2 );
$nblignes = file ( $fic );
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// Tant qu'il y a des lignes, lis les et fait en un tableau.
while (( $data = fgetcsv ( $fileopen2 , 0 , ';' , '"' )) !== FALSE )
{
$num = count ( $row ); //compte nombre de partits dans la phrase
$row ++ ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// On fait une concatenation des colonnes de $fic dans un nouveau tableau nomme $cle.
// Cela nous permettera de dedoublonner par la suite.
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $nbcol_cle == 4 ) // si nbcol = 4 alors notre clé sera composée de 4 colonnes sinon 3
{
$cle = $data [ 0 ] . $data [ 1 ] . $data [ 2 ] . $data [ 3 ];
}
else
{
$cle = $data [ 0 ] . $data [ 1 ] . $data [ 2 ];
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
#########################################################
##### Dédoublonnage #####
#########################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// On regarde si on retrouve les valeurs de $verif dans $cle
if ( in_array ( $cle , $verif , TRUE ))
{
$doublon = $doublon + 1 ; // On définit un compteur qui nous indiquera le nombre de doublons
echo " \n " . " Attention vous avez $doublon doublon(s) dans votre fichier ! \n " ;
echo " \n " . " il semblerait qu'il soit present a la ligne $row contenant $cle " . " \n " ;
}
else
{
// Ajout de la cle au tableau indexe numeriquement
$verif [] = $cle ;
}
#########################################################
##### Routage commentaires ou formules #####
##### et verification des champs #####
#########################################################
if ( strstr ( $nom_fic , 'commentaires' )) // le nom du fichier contient 'commentaires' alors ...
{
// On teste les champs vide
if ( strlen ( $data [ 0 ]) == 0 or strlen ( $data [ 1 ]) == 0
or strlen ( $data [ 2 ]) == 0 or strlen ( $data [ 3 ]) == 0 )
{
echo " \n " . " Erreur ! Vous avez des champs vides commentaires , sur la ligne $num " . " \n " . " contenant $data[1] . $data[2] . $data[3] . $data[4] . $data[5] . $data[6] . $data[7] " ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $data [ 0 ] == 0 )
{
echo " \n " . " erreur code commentaire " . $data [ 0 ] . " null " . " \n " ;
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $data [ 2 ] < 0 )
{
echo " \n " . " erreur code ligne " . $data [ 2 ] . " null " . " \n " ;
exit ;
}
}
elseif ( strstr ( $nom_fic , 'formules' ))
2015-07-28 14:39:52 +00:00
{
2015-01-07 15:23:30 +00:00
if ( strlen ( $data [ 0 ]) == 0 or strlen ( $data [ 1 ]) == 0 )
{
echo " \n " . " Erreur vous avez des champs vides formules , sur la ligne $row " . " \n " . " contenant $data[0] . $data[1] . . " ;
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $data [ 0 ] == 0 )
{
echo " \n " . " erreur code commentaire " . $data [ 0 ] . " null " . " \n " ;
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $data [ 1 ] < 0 )
{
echo " \n " . " erreur code code ligne " . $data [ 1 ] . " null " . " \n " ;
exit ;
}
}
2015-07-28 14:39:52 +00:00
}
2015-01-07 15:23:30 +00:00
}
}
if ( $doublon >= 1 )
{
$ok = false ;
echo " \n " . " $doublon Doublons détectés dans le fichier. " . " \n " ;
// Quitte avec un code d'erreur: doublon détecté.
exit ( 1 );
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
}
elseif ( $doublon == 0 && ! file_exists ( $fic ))
{
$ok = false ;
exit ;
}
else
{
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// le script appelant continue.
2015-07-28 14:39:52 +00:00
$ok = true ; // petit marqueur de fonctionnement du script jusqu'a présent
2015-01-07 15:23:30 +00:00
echo " \n Le fichier ne comporte pas de doublon. \n " ;
2015-07-28 14:39:52 +00:00
}
2015-01-07 15:23:30 +00:00
fclose ( $fileopen );
2015-07-28 14:39:52 +00:00
echo " \n Bon, maintenant on va passer a la base de donnee \n " ;
2015-01-07 15:23:30 +00:00
#########################################################
##### ________ ____ ____ #####
### | __ \ | \ | \ ###
2015-07-28 14:39:52 +00:00
# | / | |\ \ | |\ \ #
2015-01-07 15:23:30 +00:00
### | __ \ | |/ / | |/ / ###
##### |_______/ |___/ |___/ #####
#########################################################
2015-07-28 14:39:52 +00:00
// si notre scripte est bon on passe a la suite
2015-01-07 15:23:30 +00:00
$c = new Zend_Config ( $application -> getOptions ());
try {
$db = Zend_Db :: factory ( $c -> profil -> db -> metier );
$db -> getConnection ();
// print_r (get_class_methods($db));
}
catch ( Zend_Exception $e )
{
2015-07-28 14:39:52 +00:00
echo $e -> getMessage ();
2015-01-07 15:23:30 +00:00
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $db -> isConnected ())
{
echo " \n *********************************************** \n " ;
echo " \n Connection a la BDD ok \n " ;
echo " \n *********************************************** \n " ;
}
2015-07-28 14:39:52 +00:00
else
2015-01-07 15:23:30 +00:00
{
echo " \n *********************************************** \n " ;
2015-07-28 14:39:52 +00:00
echo " \n !!!! Erreur / ! Pas connecte a la BDD !!!! \n " ;
2015-01-07 15:23:30 +00:00
echo " \n *********************************************** \n " ;
}
$pathCache = APPLICATION_PATH . '/../library/Metier/scores/Variables' ;
$copy_fic = $nomfichier ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $nomfichier ) // Si le nom du fichier comprend 'scores' ou 'valo'...
{
// On découpe la chaine de caractère à chaque "/" et on fait un array.
$token = basename ( $copy_fic );
// On prend ce qui se trouve avant le point
$token1 = strtok ( $token , " . " );
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// On effece '_utf8' et '.csv'
$nomtabletemp = ( str_replace ( '_utf8' , '' , $token ));
$nomtable = ( str_replace ( '.csv' , '' , $nomtabletemp ));
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// Affichage du nom de la table
echo " \n Le nom de la table est : $nomtable . \n " ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
####################################################
##### // Création de la Table Ccmmentaires \\ #####
####################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( strstr ( $nomtable , " commentaires " ))
2015-07-28 14:39:52 +00:00
{
2015-01-07 15:23:30 +00:00
try
2015-07-28 14:39:52 +00:00
{
2015-01-07 15:23:30 +00:00
// Création d'une table "TEXTE"
$sql_ctc_query = $db -> query ( " CREATE TABLE $nomtable
(
code int ( 8 ) NOT NULL ,
langue char ( 2 ) NOT NULL ,
cycle smallint ( 3 ) NOT NULL ,
ligne char ( 4 ) NOT NULL ,
commentaire longtext ,
tri varchar ( 5 ) DEFAULT NULL ,
deleted varchar ( 2 ) DEFAULT NULL ,
idUser varchar ( 0 ) DEFAULT NULL ,
dateInsert varchar ( 15 ) DEFAULT NULL ,
dateUpdate varchar ( 0 ) DEFAULT NULL ,
PRIMARY KEY ( code , langue , cycle , ligne )
)
ENGINE = MyISAM DEFAULT CHARSET = latin1 COMMENT = 'Commentaires Valorisation - Liste des commentaires' ; " );
}
catch ( Zend_Exception $e )
{
echo $e -> getMessage () . " \n " ;
echo " \n " . " !!!!! ERREUR ! / CHARGEMENT ARRETE !!!!! " . " \n " . " \n " ;
2015-07-28 14:39:52 +00:00
}
2015-01-07 15:23:30 +00:00
echo " \n " . " Table $nomtable cree. " . " \n " ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$fileopen2 = fopen ( $fic , " r+ " );
$nbr = 0 ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $fileopen2 )
{
$contenufichier = fgetcsv ( $fileopen2 );
$nblignes = file ( $fic );
$vide = " " ;
$null = null ;
$zero = 0 ;
}
2015-07-28 14:39:52 +00:00
else
2015-01-07 15:23:30 +00:00
{
exit ;
2015-07-28 14:39:52 +00:00
echo " \n " . " Erreur a l'ouverture du fichier " . " \n " ;
2015-01-07 15:23:30 +00:00
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( strstr ( $nomtable , " commentaires " ))
{
// Tant qu'il y a des lignes, lis les et fait en un tableau.
while (( $data = fgetcsv ( $fileopen2 , 0 , ';' , '"' )) !== FALSE )
{
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
####################################################
##### encodage et remplacement du contenu #####
####################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$data [ 4 ] = str_replace ( chr ( 93 ), " ] " , $data [ 4 ]); // crochet fermant
$data [ 4 ] = str_replace ( chr ( 92 ), " \\ " , $data [ 4 ]); // anti slash
$data [ 4 ] = str_replace ( chr ( 128 ), '€' , $data [ 4 ]); // devise euros
$data [ 4 ] = str_replace ( chr ( 130 ), ',' , $data [ 4 ]); // baseline single quote
$data [ 4 ] = str_replace ( chr ( 132 ), '"' , $data [ 4 ]); // baseline double quote
$data [ 4 ] = str_replace ( chr ( 133 ), '...' , $data [ 4 ]); // ellipsis
$data [ 4 ] = str_replace ( chr ( 145 ), " ' " , $data [ 4 ]); // left single quote
$data [ 4 ] = str_replace ( chr ( 146 ), " ' " , $data [ 4 ]); // right single quote
$data [ 4 ] = str_replace ( chr ( 147 ), '"' , $data [ 4 ]); // left double quote
$data [ 4 ] = str_replace ( chr ( 148 ), '"' , $data [ 4 ]); // right double quote
$data [ 4 ] = str_replace ( chr ( 150 ), '– ' , $data [ 4 ]); // tiret du 6
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$data [ 5 ] = str_replace ( chr ( 93 ), " ] " , $data [ 5 ]); // crochet fermant
$data [ 5 ] = str_replace ( chr ( 92 ), " \\ " , $data [ 5 ]); // anti slash
$data [ 5 ] = str_replace ( chr ( 128 ), '€' , $data [ 5 ]); // devise euros
$data [ 5 ] = str_replace ( chr ( 130 ), ',' , $data [ 5 ]); // baseline single quote
$data [ 5 ] = str_replace ( chr ( 132 ), '"' , $data [ 5 ]); // baseline double quote
$data [ 5 ] = str_replace ( chr ( 133 ), '...' , $data [ 5 ]); // ellipsis
$data [ 5 ] = str_replace ( chr ( 145 ), " ' " , $data [ 5 ]); // left single quote
$data [ 5 ] = str_replace ( chr ( 146 ), " ' " , $data [ 5 ]); // right single quote
$data [ 5 ] = str_replace ( chr ( 147 ), '"' , $data [ 5 ]); // left double quote
$data [ 5 ] = str_replace ( chr ( 148 ), '"' , $data [ 5 ]); // right double quote
$data [ 5 ] = str_replace ( chr ( 150 ), '– ' , $data [ 5 ]); // tiret du 6
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$encode = mb_detect_encoding ( $data [ 4 ]); // detection de l'encodage.
$encode = mb_detect_encoding ( $data [ 5 ]); // detection de l'encodage.
$data [ 4 ] = mb_convert_encoding ( $data [ 4 ], $encode , 'UTF-8' );
$data [ 5 ] = mb_convert_encoding ( $data [ 5 ], $encode , 'UTF-8' );
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// $Zdata4 = '"'.$db->->real_escape_string($data[4]);
// $Zdata4 = $db->quote($data[4]);
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
//$Zdata4 = mysqli_real_escape_string($db, $data[4]);
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
if ( $data [ 5 ] == null )
{
$data [ 5 ] = 0 ;
2015-07-28 14:39:52 +00:00
}
2015-01-07 15:23:30 +00:00
$zdata4 = $db -> quote ( $data [ 4 ]);
$nbr ++ ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// ESSAI 1
$sql_insert = array
(
'code' => " $data[0] " ,
'langue' => " $data[1] " ,
'cycle' => " $data[2] " ,
'ligne' => " $data[3] " ,
'commentaire' => " $data[4] " ,
'tri' => " $data[5] " ,
'deleted' => " $null " ,
'idUser' => " $null " ,
'dateInsert' => " $null " ,
'dateUpdate' => " $null "
);
2015-07-28 14:39:52 +00:00
try
2015-01-07 15:23:30 +00:00
{
# $num = count($row); // On compte nombre de parti dans la phrase
# $row++; // à chaques tour de boucle j'ajoute 1 à $row
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// ESSAI 2
/*
$sql_itc = $db -> query ( " INSERT INTO $nomtable
(
code , langue , cycle , ligne , commentaire , tri , deleted , idUser , dateInsert , dateUpdate )
VALUES
(
" . $data[0] . " , " . $data[1] . " , " . $data[2] . " , " . $data[3] . " , " . $Zdata4 . " , " . $data[5] . " , '' , '' , '' ,)
" );
*/
2015-07-28 14:39:52 +00:00
$db -> insert ( $nomtable , $sql_insert );
2015-01-07 15:23:30 +00:00
//`
// Astuce !! La structure de $data[0] étant un int on retire les "
// Astuce !! La colonne 5 contenant des apostrophs étant interprété par le sql comme un nouveau champ il est necessaire de protéger ce champs, du coup in ajoute la fonction mysql_real_escape_string() pour insérer un antislash devant les caractères " NULL, \x00, \n, \r, \, ', " et \x1a. "
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// Renseignement sur les erreurs possibles
#echo ("$sql_itt");
catch ( Zend_Exception $e )
{
echo " \n " . $e -> getMessage () . " \n " ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
//echo "\n"."!!!!!!!!!!!!!!!!!!!!! Import de la table $nomtable echouee. !!!!!!!!!!!!!!!!!!!!!"."\n"."\n";
//$sql_erase = $db->query("DROP TABLE $nomtable;");
//echo "La table $nomtable a ete effacee !! \n ";
2015-07-28 14:39:52 +00:00
}
2015-01-07 15:23:30 +00:00
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
echo " \n " . " Import de la table $nomtable . ok " . " \n " ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// comptage sql
$comptage = count ( $sql_itc_query );
echo " \n " . " Nombre de lignes importees : " . " $nbr " . " \n " ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
elseif ( strstr ( $nomtable , " formules " ))
{
####################################################
// Création de la Table formules \\
####################################################
try {
$sql_ctf_query = $db -> query ( " CREATE TABLE $nomtable
(
code int ( 8 ) NOT NULL DEFAULT '0' ,
ligne char ( 4 ) NOT NULL DEFAULT '' ,
remarque varchar ( 120 ) DEFAULT NULL ,
operande varchar ( 7 ) DEFAULT NULL ,
ope1 varchar ( 255 ) DEFAULT NULL ,
operation varchar ( 9 ) DEFAULT NULL ,
valeur varchar ( 255 ) DEFAULT NULL ,
tri varchar ( 0 ) DEFAULT NULL ,
deleted varchar ( 0 ) DEFAULT NULL ,
idUser varchar ( 0 ) DEFAULT NULL ,
dateInsert varchar ( 0 ) DEFAULT NULL ,
dateUpdate varchar ( 0 ) DEFAULT NULL ,
PRIMARY KEY ( code , ligne )
)
ENGINE = MyISAM DEFAULT CHARSET = latin1 COMMENT = 'Criteres Valorisation - Formules de calculs' ; " );
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
}
catch ( Zend_Exception $e )
{
echo $e -> getMessage () . " \n " ;
echo " \n " . " !!!!!!!!!!!!!!!!!!!!! CHARGEMENT ARRETE !!!!!!!!!!!!!!!!!!!!! " . " \n " . " \n " ;
}
echo " \n Table $nomtable cree. \n " ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// Tant qu'il y a des lignes, lis les et fait en un tableau.
while (( $data = fgetcsv ( $fileopen2 , 0 , ';' , '"' )) !== FALSE )
{
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
####################################################
##### encodage et remplacement du contenu #####
####################################################
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$data [ 2 ] = str_replace ( chr ( 93 ), " ] " , $data [ 2 ]); // crochet fermant
$data [ 2 ] = str_replace ( chr ( 92 ), " \\ " , $data [ 2 ]); // anti slash
$data [ 2 ] = str_replace ( chr ( 128 ), '€' , $data [ 2 ]); // devise euros
$data [ 2 ] = str_replace ( chr ( 130 ), ',' , $data [ 2 ]); // baseline single quote
$data [ 2 ] = str_replace ( chr ( 132 ), '"' , $data [ 2 ]); // baseline double quote
$data [ 2 ] = str_replace ( chr ( 133 ), '...' , $data [ 2 ]); // ellipsis
$data [ 2 ] = str_replace ( chr ( 145 ), " ' " , $data [ 2 ]); // left single quote
$data [ 2 ] = str_replace ( chr ( 146 ), " ' " , $data [ 2 ]); // right single quote
$data [ 2 ] = str_replace ( chr ( 147 ), '"' , $data [ 2 ]); // left double quote
$data [ 2 ] = str_replace ( chr ( 148 ), '"' , $data [ 2 ]); // right double quote
$data [ 2 ] = str_replace ( chr ( 150 ), '– ' , $data [ 2 ]); // tiret du 6
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$data [ 4 ] = str_replace ( chr ( 93 ), " ] " , $data [ 4 ]); // crochet fermant
$data [ 4 ] = str_replace ( chr ( 92 ), " \\ " , $data [ 4 ]); // anti slash
$data [ 4 ] = str_replace ( chr ( 128 ), '€' , $data [ 4 ]); // devise euros
$data [ 4 ] = str_replace ( chr ( 130 ), ',' , $data [ 4 ]); // baseline single quote
$data [ 4 ] = str_replace ( chr ( 132 ), '"' , $data [ 4 ]); // baseline double quote
$data [ 4 ] = str_replace ( chr ( 133 ), '...' , $data [ 4 ]); // ellipsis
$data [ 4 ] = str_replace ( chr ( 145 ), " ' " , $data [ 4 ]); // left single quote
$data [ 4 ] = str_replace ( chr ( 146 ), " ' " , $data [ 4 ]); // right single quote
$data [ 4 ] = str_replace ( chr ( 147 ), '"' , $data [ 4 ]); // left double quote
$data [ 4 ] = str_replace ( chr ( 148 ), '"' , $data [ 4 ]); // right double quote
$data [ 4 ] = str_replace ( chr ( 150 ), '– ' , $data [ 4 ]); // tiret du 6
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$data [ 5 ] = str_replace ( chr ( 93 ), " ] " , $data [ 5 ]); // crochet fermant
$data [ 5 ] = str_replace ( chr ( 92 ), " \\ " , $data [ 5 ]); // anti slash
$data [ 5 ] = str_replace ( chr ( 128 ), '€' , $data [ 5 ]); // devise euros
$data [ 5 ] = str_replace ( chr ( 130 ), ',' , $data [ 5 ]); // baseline single quote
$data [ 5 ] = str_replace ( chr ( 132 ), '"' , $data [ 5 ]); // baseline double quote
$data [ 5 ] = str_replace ( chr ( 133 ), '...' , $data [ 5 ]); // ellipsis
$data [ 5 ] = str_replace ( chr ( 145 ), " ' " , $data [ 5 ]); // left single quote
$data [ 5 ] = str_replace ( chr ( 146 ), " ' " , $data [ 5 ]); // right single quote
$data [ 5 ] = str_replace ( chr ( 147 ), '"' , $data [ 5 ]); // left double quote
$data [ 5 ] = str_replace ( chr ( 148 ), '"' , $data [ 5 ]); // right double quote
$data [ 5 ] = str_replace ( chr ( 150 ), '– ' , $data [ 5 ]); // tiret du 6
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$data [ 6 ] = str_replace ( chr ( 93 ), " ] " , $data [ 6 ]); // crochet fermant
$data [ 6 ] = str_replace ( chr ( 92 ), " \\ " , $data [ 6 ]); // anti slash
$data [ 6 ] = str_replace ( chr ( 128 ), '€' , $data [ 6 ]); // devise euros
$data [ 6 ] = str_replace ( chr ( 130 ), ',' , $data [ 6 ]); // baseline single quote
$data [ 6 ] = str_replace ( chr ( 132 ), '"' , $data [ 6 ]); // baseline double quote
$data [ 6 ] = str_replace ( chr ( 133 ), '...' , $data [ 6 ]); // ellipsis
$data [ 6 ] = str_replace ( chr ( 145 ), " ' " , $data [ 6 ]); // left single quote
$data [ 6 ] = str_replace ( chr ( 146 ), " ' " , $data [ 6 ]); // right single quote
$data [ 6 ] = str_replace ( chr ( 147 ), '"' , $data [ 6 ]); // left double quote
$data [ 6 ] = str_replace ( chr ( 148 ), '"' , $data [ 6 ]); // right double quote
$data [ 6 ] = str_replace ( chr ( 150 ), '– ' , $data [ 6 ]); // tiret du 6
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$encode = mb_detect_encoding ( $data [ 2 ]); // detection de l'encodage.
$encode = mb_detect_encoding ( $data [ 5 ]); // detection de l'encodage.
$encode = mb_detect_encoding ( $data [ 4 ]); // detection de l'encodage.
$encode = mb_detect_encoding ( $data [ 6 ]); // detection de l'encodage.
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
$data [ 2 ] = mb_convert_encoding ( $data [ 2 ], $encode , 'UTF-8' );
$data [ 4 ] = mb_convert_encoding ( $data [ 4 ], $encode , 'UTF-8' );
$data [ 5 ] = mb_convert_encoding ( $data [ 5 ], $encode , 'UTF-8' );
$data [ 6 ] = mb_convert_encoding ( $data [ 6 ], $encode , 'UTF-8' );
2015-07-28 14:39:52 +00:00
$sql_insert = array (
2015-01-07 15:23:30 +00:00
'code' => " $data[0] " ,
'ligne' => " $data[1] " ,
'remarque' => " $data[2] " ,
'operande' => " $data[3] " ,
'ope1' => " $data[4] " ,
'operation' => " $data[5] " ,
'valeur' => " $data[6] " ,
'tri' => " $null " ,
'deleted' => " $null " ,
2015-07-28 14:39:52 +00:00
'idUser' => " $null " ,
'dateInsert' => " $null " ,
2015-01-07 15:23:30 +00:00
'dateUpdate' => " $null "
);
$nbr ++ ;
2015-07-28 14:39:52 +00:00
try {
2015-01-07 15:23:30 +00:00
$db -> insert ( $nomtable , $sql_insert );
}
catch ( Zend_Exception $e )
{
echo $e -> getMessage () . " \n " ;
echo " \n " . " !!!!! ERREUR ! / CHARGEMENT ARRETE !!!!! " . " \n " . " \n " ;
}
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
echo " \n " . " Import de la table $nomtable ok. " . " \n " ;
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// comptage sql
$comptage = count ( $sql_insert );
echo " \n " . " Nombre de lignes importees : " . " $nbr " . " \n " ;
fclose ( $fileopen2 );
exit ;
}
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// Exécution de la requête
//$result = $db->query($sql_ctt);
// Renseignement sur les erreurs possibles
2015-07-28 14:39:52 +00:00
2015-01-07 15:23:30 +00:00
// echo "<strong>" . $Erreur . "</strong> <br /> <br />\n";
2015-07-28 14:39:52 +00:00
//
2015-01-07 15:23:30 +00:00
// if ($sql_ctt_query) // si code retour OK
// {
// echo "Création de la table $nomtable ok.<br />";
// }
// else
// {
// echo "Création de la table $nomtable échouée.<br />";
// }