Rev 24 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
/** Exemple lancement:
* /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
* Options :
* -f : indiquer le chemin du fichier à analyser
*/
class Nvjfl extends Script {
protected $parametres_autorises = array(
'-f' => array(true, null, 'Chemin du fichier à analyser'));
public function executer() {
// Lancement de l'action demandée
$cmd = $this->getParametre('a');
switch ($cmd) {
case 'indexer' :
$this->indexer();
break;
default :
$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
}
}
private function indexer() {
// créer un index pour un nom identique la clé primaire est composée de cet index + num_taxon + langue
$nomFichier = $this->getParametre('f');
if ($nomFichier) {
if (file_exists($nomFichier) === true) {
if ( $fichierOuvert = fopen($nomFichier, 'r') ) {
$this->bdd = new Bdd();
$nom_precedent = '';
$index = 0;
while ($ligne = fgets($fichierOuvert)) {
$champs = explode(';', $ligne);
if ($champs[3] != $nom_precedent) {
$index ++;
$nom_precedent = $champs[3];
}
$champs[0] = $index;
$this->bdd->requeter('INSERT INTO '.Config::get('bdd_table').' VALUES ('.implode(', ',$champs).');');
}
fclose($fichierOuvert);
} else {
$this->traiterErreur("Le fichier $nomFichier n'a pas pu être ouvert.");
}
} else {
$this->traiterErreur("Le fichier $nomFichier est introuvable.");
}
}
}
}
?>