| 14,6 → 14,10 |
| '-t' => array(false, false, 'Permet de tester le script sur un jeux réduit de données (indiquer le nombre de lignes).')); |
| |
| public function executer() { |
| // désactive le problématique gestionnaire d'erreur du framework |
| restore_error_handler(); |
| restore_exception_handler(); |
| ini_set('mysql.default_socket', '/home/raphael/web/mysql/mysql.sock'); |
| // Lancement de l'action demandée |
| try { |
| $this->initialiserProjet('nvjfl'); |
| 59,24 → 63,28 |
| private function chargerNvjfl() { |
| //Debug::printr(Config::get('fichiers')); |
| $fichierOuvert = $this->ouvrirFichier(Config::get('chemins.nvjfl')); |
| $donnees = $this->analyserFichier($fichierOuvert); |
| fclose($fichierOuvert); |
| foreach ($donnees as $donnee) { |
| $requete = 'INSERT INTO '.Config::get('tables.nvjfl').' VALUES ('.implode(', ', $donnee).')'; |
| $this->getBdd()->requeter($requete); |
| |
| $this->afficherAvancement("Insertion des noms vernaculaires dans la base de données"); |
| if ($this->stopperLaBoucle($this->getParametre('t'))) { |
| break; |
| while(($donnees = $this->analyserFichier($fichierOuvert))) { |
| foreach ($donnees as $donnee) { |
| $requete = 'INSERT INTO '.Config::get('tables.nvjfl').' VALUES ('.implode(', ', $donnee).')'; |
| var_dump($donnee);die; |
| $this->getBdd()->requeter($requete); |
| |
| $this->afficherAvancement("Insertion des noms vernaculaires dans la base de données"); |
| if ($this->stopperLaBoucle($this->getParametre('t'))) { |
| break; |
| } |
| } |
| echo "\n"; |
| } |
| echo "\n"; |
| fclose($fichierOuvert); |
| } |
| |
| private function analyserFichier($fichierOuvert) { |
| private function analyserFichier($fichierOuvert, $limite = 30000) { |
| static $passe = 1; |
| if($passe == 1) $entetesCsv = fgets($fichierOuvert); |
| $donnees = array(); |
| $entetesCsv = fgets($fichierOuvert); |
| while ($ligneCsv = fgets($fichierOuvert)) { |
| while (count($donnees) < $limite && ($ligneCsv = fgets($fichierOuvert))) { |
| $champs = explode("\t", trim($ligneCsv)); |
| if (count($champs) > 0) { |
| if (isset($champs[2])) { |
| 86,11 → 94,12 |
| $donnees[] = $this->protegerValeursDesChamps($champs); |
| } |
| } |
| $this->afficherAvancement("Analyse du fichier des noms vernaculaires"); |
| $this->afficherAvancement("Analyse du fichier des noms vernaculaires (passe $passe)"); |
| if ($this->stopperLaBoucle()) { |
| break; |
| } |
| } |
| $passe++; |
| echo "\n"; |
| return $donnees; |
| } |
| 101,6 → 110,7 |
| $this->nomsIndex[$nomVernaculaire] = $this->numeroIndex++; |
| } |
| $indexCourrant = $this->nomsIndex[$nomVernaculaire]; |
| echo "$nomVernaculaire : $indexCourrant\n"; |
| return $indexCourrant; |
| } |
| |