Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 838 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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