Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 22 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
11 jpm 1
<?php
2
/** Exemple lancement:
3
 * /opt/lampp/bin/php -d memory_limit=3500M ~/web/nripts/cli.php nvjfl -a indexer -f /home/delphine/Documents/nvjfl_version_2007-10-29/NomsVernaculaires-2007-10-29/NomsVernaculaires-2007-10-29.csv
4
 * Options :
5
 * -f : indiquer le chemin du fichier à analyser
6
*/
7
class Nvjfl extends Script {
8
 
9
	protected $parametres_autorises = array(
10
	'-f' => array(true, null, 'Chemin du fichier à analyser'));
11
 
12
	public function executer() {
13
		// Lancement de l'action demandée
14
		$cmd = $this->getParametre('a');
15
	    switch ($cmd) {
16
			case 'indexer' :
17
				$this->indexer();
18
				break;
19
			default :
20
				$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
21
		}
22
    }
23
 
24
	private function indexer() {
25
		// créer un index pour un nom identique la clé primaire est composée de cet index + num_taxon + langue
26
		$nomFichier = $this->getParametre('f');
27
		if ($nomFichier) {
28
			if (file_exists($nomFichier) === true) {
29
				if ( $fichierOuvert = fopen($nomFichier, 'r') ) {
30
					$this->bdd = new Bdd();
31
					$nom_precedent = '';
32
					$index = 0;
33
					while ($ligne = fgets($fichierOuvert)) {
34
						$champs = explode(';', $ligne);
35
						if ($champs[3] != $nom_precedent) {
36
							$index ++;
37
							$nom_precedent = $champs[3];
38
						}
39
						$champs[0] = $index;
40
						$this->bdd->requeter('INSERT INTO '.Config::get('bdd_table').' VALUES ('.implode(', ',$champs).');');
41
					}
42
					fclose($fichierOuvert);
43
				} else {
44
					$this->traiterErreur("Le fichier $nomFichier n'a pas pu être ouvert.");
45
				}
46
			} else {
47
				$this->traiterErreur("Le fichier $nomFichier est introuvable.");
48
			}
49
		}
50
	}
51
}
52
?>