Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 349 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 349 Rev 838
Line 12... Line 12...
12
 
12
 
13
	protected $parametres_autorises = array(
13
	protected $parametres_autorises = array(
Line 14... Line 14...
14
		'-t' => array(false, false, 'Permet de tester le script sur un jeux réduit de données (indiquer le nombre de lignes).'));
14
		'-t' => array(false, false, 'Permet de tester le script sur un jeux réduit de données (indiquer le nombre de lignes).'));
-
 
15
 
-
 
16
	public function executer() {
-
 
17
		// désactive le problématique gestionnaire d'erreur du framework
-
 
18
		restore_error_handler();
15
 
19
		restore_exception_handler();
16
	public function executer() {
20
		ini_set('mysql.default_socket', '/home/raphael/web/mysql/mysql.sock');
17
		// Lancement de l'action demandée
21
		// Lancement de l'action demandée
Line 18... Line 22...
18
		try {
22
		try {
Line 57... Line 61...
57
     * Charge le fichier en créant un id pour chaque nom vernaculaire.
61
     * Charge le fichier en créant un id pour chaque nom vernaculaire.
58
     */
62
     */
59
	private function chargerNvjfl() {
63
	private function chargerNvjfl() {
60
		//Debug::printr(Config::get('fichiers'));
64
		//Debug::printr(Config::get('fichiers'));
61
		$fichierOuvert = $this->ouvrirFichier(Config::get('chemins.nvjfl'));
65
		$fichierOuvert = $this->ouvrirFichier(Config::get('chemins.nvjfl'));
62
		$donnees = $this->analyserFichier($fichierOuvert);
-
 
63
		fclose($fichierOuvert);
-
 
64
		foreach ($donnees as $donnee) {
-
 
65
			$requete = 'INSERT INTO '.Config::get('tables.nvjfl').' VALUES ('.implode(', ', $donnee).')';
-
 
66
			$this->getBdd()->requeter($requete);
-
 
Line -... Line 66...
-
 
66
 
-
 
67
		while(($donnees = $this->analyserFichier($fichierOuvert))) {
-
 
68
			foreach ($donnees as $donnee) {
-
 
69
				$requete = 'INSERT INTO '.Config::get('tables.nvjfl').' VALUES ('.implode(', ', $donnee).')';
-
 
70
				var_dump($donnee);die;
-
 
71
				$this->getBdd()->requeter($requete);
67
 
72
 
68
			$this->afficherAvancement("Insertion des noms vernaculaires dans la base de données");
73
				$this->afficherAvancement("Insertion des noms vernaculaires dans la base de données");
69
			if ($this->stopperLaBoucle($this->getParametre('t'))) {
74
				if ($this->stopperLaBoucle($this->getParametre('t'))) {
-
 
75
					break;
70
				break;
76
				}
-
 
77
			}
71
			}
78
			echo "\n";
72
		}
79
		}
73
		echo "\n";
80
		fclose($fichierOuvert);
Line 74... Line 81...
74
	}
81
	}
-
 
82
 
-
 
83
	private function analyserFichier($fichierOuvert, $limite = 30000) {
75
 
84
		static $passe = 1;
76
	private function analyserFichier($fichierOuvert) {
-
 
77
		$donnees = array();
85
		if($passe == 1) $entetesCsv = fgets($fichierOuvert);
78
		$entetesCsv = fgets($fichierOuvert);
86
		$donnees = array();
79
		while ($ligneCsv = fgets($fichierOuvert)) {
87
		while (count($donnees) < $limite && ($ligneCsv = fgets($fichierOuvert))) {
80
			$champs = explode("\t", trim($ligneCsv));
88
			$champs = explode("\t", trim($ligneCsv));
81
			if (count($champs) > 0) {
89
			if (count($champs) > 0) {
82
				if (isset($champs[2])) {
90
				if (isset($champs[2])) {
83
					$nomVernaculaire = $champs[2];
91
					$nomVernaculaire = $champs[2];
84
					$indexCourrant = $this->getIndexNomVernaculaire($nomVernaculaire);
92
					$indexCourrant = $this->getIndexNomVernaculaire($nomVernaculaire);
85
					$champs = array_merge(array($indexCourrant), $champs);
93
					$champs = array_merge(array($indexCourrant), $champs);
86
					$donnees[] = $this->protegerValeursDesChamps($champs);
94
					$donnees[] = $this->protegerValeursDesChamps($champs);
87
				}
95
				}
88
			}
96
			}
89
			$this->afficherAvancement("Analyse du fichier des noms vernaculaires");
97
			$this->afficherAvancement("Analyse du fichier des noms vernaculaires (passe $passe)");
90
			if ($this->stopperLaBoucle()) {
98
			if ($this->stopperLaBoucle()) {
91
				break;
99
				break;
-
 
100
			}
92
			}
101
		}
93
		}
102
		$passe++;
94
		echo "\n";
103
		echo "\n";
Line 95... Line 104...
95
		return $donnees;
104
		return $donnees;
96
	}
105
	}
97
 
106
 
98
	private function getIndexNomVernaculaire($nomVernaculaire) {
107
	private function getIndexNomVernaculaire($nomVernaculaire) {
99
		$indexCourrant = null;
108
		$indexCourrant = null;
100
		if (array_key_exists($nomVernaculaire, $this->nomsIndex) == false) {
109
		if (array_key_exists($nomVernaculaire, $this->nomsIndex) == false) {
-
 
110
			$this->nomsIndex[$nomVernaculaire] = $this->numeroIndex++;
101
			$this->nomsIndex[$nomVernaculaire] = $this->numeroIndex++;
111
		}
102
		}
112
		$indexCourrant = $this->nomsIndex[$nomVernaculaire];
Line 103... Line 113...
103
		$indexCourrant = $this->nomsIndex[$nomVernaculaire];
113
		echo "$nomVernaculaire : $indexCourrant\n";
104
		return $indexCourrant;
114
		return $indexCourrant;