#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini DATETIME, 'CLE'=>'INSEE_MAJ_ENCOURS'); $iparam->setParamValeur($tabDataToUpdate); */ echo date ('Y/m/d - H:i:s') . " - Début du traitement".EOL; flush(); for ($nbFichiers=0; isset($fichier_csv[$nbFichiers]); $nbFichiers++) { $fp=fopen($fichier_csv[$nbFichiers], 'r'); if (!$fp) { echo date ('Y/m/d - H:i:s')." - Impossible d'ouvrir le fichier : ".$fichier_csv[$nbFichiers]." !".EOL; /* $tabDataToUpdate=array( 'NUM'=>$numScript, 'DATE_JOUR'=>$dateJour, 'HEURE_DEBUT'=>$heureDebut, 'HEURE_FIN'=>$heureFin, 'CODE_RETOUR'=>0, 'NB_MAIL'=>1, 'RESUME_EXEC'=>"Impossible d'ouvrir le fichier n°$nbFichiers à traiter : $nomFichier.");*/ echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL; exit(); } $nbLignes=0; echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $fichier_csv[$nbFichiers] ."...".EOL; flush(); while (($data = fgetcsv($fp, 3000, $separator)) !== FALSE) { //echo "\nLigne #$nbLignes:\n"; $nomIn=addslashes(trim($data[0])); $nom=trim(addslashes(substr($nomIn,0,5))); //$prenom=''; $prenom=addslashes(trim($data[1])); //////$tabTmp=explode('/',$data[2]); $tabTmp=explode('/',$data[2]); $dateNaiss=$tabTmp[2].'-'.$tabTmp[1].'-'.$tabTmp[0]; $nbLignes++; $tabTmp=$iDb->select('insee_dc', "nom, prenom, sexe, dateNaiss, comInsee, comLib, pays, dateDeces, comInsee2, dateInsert, MATCH(nom) AGAINST ('$nom') AS ScoreNom, MATCH(prenom) AGAINST ('$prenom') AS ScorePrenom /* MATCH(nom, prenom) AGAINST ('$nomIn') AS ScoreNomPrenom */ ", "1 AND MATCH(nom) AGAINST ('$nom') AND MATCH(prenom) AGAINST ('$prenom') /* AND MATCH(nom,prenom) AGAINST ('$nomIn') AND dateNaiss='$dateNaiss' */ AND nom LIKE '$nom%' ORDER BY ScoreNom DESC, ScorePrenom DESC ", true); if (isset($tabTmp[0])) { if (count($tabTmp)==1) $codeRet=1; else $codeRet=2; foreach ($tabTmp as $i=> $res) { echo "$ref;$nomIn;$prenom;$dateNaiss;$codeRet;". $res['nom'].';'. $res['prenom'].';'. $res['dateNaiss'].';'. $res['comInsee'].';'. $res['comLib'].';'. $res['sexe'].';'. $res['pays'].';'. $res['dateDeces'].';'. $res['comInsee2'].';'. $res['dateInsert'].';'.EOL; } } else { echo "$ref;$nomIn;$prenom;$dateNaiss;0;".EOL; } /* if ($nbLignes==1) { // L'entête contient la structure du fichier // On compte le nombre de colonnes du fichier $nbColonnes=count($data); $sql="CREATE TABLE IF NOT EXISTS `$nom_table` ("; for($i=0; $i<$nbColonnes; $i++) { $sql.='`'.$data[$i].'` LONGTEXT,'; $tabTailles[$i]=0; $champ[$i]=$data[$i]; } $sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule //$sql.="NOM LONGTEXT, PRENOM LONGTEXT, NUSAGE LONGTEXT) TYPE = MYISAM COMMENT = '$comment'"; $sql.=") TYPE = MYISAM COMMENT = '$comment'"; //echo $sql; if ($iDb->query($sql)) echo date ('Y/m/d - H:i:s')." - Création de la table $nom_table OK...".EOL; else { echo $iDb->getLastError().EOL; die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $nom_table !".EOL."Requête SQL = $sql".EOL); } flush(); continue; } die(); $tabDataToInsert=array(); for($i=0; $i<$nbColonnes; $i++) { if ($i==1) { $tabM=explode(' ', $data[$i]); if (strlen($tabM[0])<=2) { $nom=$tabM[0].' '.$tabM[1]; // unset($tabM[0]); unset($tabM[1]); } else $nom=$tabM[0]; unset($tabM[0]); $tabM=preg_split('/( NEE | NE )/i', implode(' ', $tabM)); $prenom=$tabM[0]; $usage=$tabM[1]; $tabDataToInsert=array_merge($tabDataToInsert, array('NOM'=>$nom, 'PRENOM'=>$prenom, 'NUSAGE'=>$usage)); } else $tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i])); if (strlen($data[$i])>$tabTailles[$i]) $tabTailles[$i]=strlen($data[$i]); } //print_r($tabDataToInsert); $ret=$iDb->insert($nom_table, $tabDataToInsert); if ($ret!=1) { echo date ('Y/m/d - H:i:s') . " - ERREUR à l'insertion de la ligne n°$i : ". implode(';', $data) ." !".EOL; flush(); } unset($tabDataToInsert);*/ } fclose ($fp); die(); // On réduit la taille des colonnes au max de chaque champ for($i=0; $i<$nbColonnes; $i++) { //$tabTailles[$i]=strlen($data[$i]); if ($tabTailles[$i]<256) { $sql="ALTER TABLE `$nom_table` CHANGE `".$champ[$i]."` `".$champ[$i]."` VARCHAR(".$tabTailles[$i].") NULL DEFAULT NULL "; echo $sql; if ($iDb->query($sql)) echo date ('Y/m/d - H:i:s')." - Taille du champ $i (". $champ[$i] .") passée à ". $tabTailles[$i] ."...".EOL; else echo date ('Y/m/d - H:i:s')." - Impossible de modifier la taille du champ $i (". $champ[$i] .") à ". $tabTailles[$i] ." !".EOL; flush();} } echo 'Tailles max / champ:'.EOL; print_r($tabTailles); } echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL; die(); function ecrireFichier($fichier,$texte){ $fp = fopen($fichier, "a"); fwrite($fp, $texte."\r\n"); fclose ($fp); } function valideSiret($SIRET) { if (!is_numeric($SIRET)) return false; $somme=0; for ($i=0; $i<=12; $i+=2) { // Traitement PAIR $var_tmp=(string)(2*((integer)substr($SIRET,$i,1))); $som_tmp=0; for($j=0;$j