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 |
?>
|