New file |
0,0 → 1,72 |
<?php |
/** |
* Exemple lancement: |
* /opt/lampp/bin/php -d memory_limit=3500M cli.php import -n |
*/ |
class Import extends Script { |
private $bdd = null; |
private $auteurs = array(); |
protected $parametres_autorises = array( |
'-n' => array(true, false, 'Nom du fichier à importer.')); |
|
|
public function __construct($script_nom, $parametres) { |
parent::__construct($script_nom, $parametres); |
$this->bdd = new Bdd(); |
} |
|
|
public function executer() { |
try { |
$this->initialiserScript(); |
$cmd = $this->getParametre('a'); |
$fichier = $this->getParametre('n'); |
switch ($cmd) { |
case "import" : |
//testerauteur |
$this->charger($fichier); break; |
default : |
$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd)); |
} |
} catch (Exception $erreur) { |
$this->traiterErreur($erreur->getMessage()); |
} |
} |
|
private function initialiserScript() { |
$fichierIni = $this->getScriptChemin().'import.ini'; |
if (file_exists($fichierIni)) { |
Config::charger($fichierIni); |
} else { |
$erreur = "Veuillez configurer le projet en créant le fichier 'communes.ini' ". |
"dans le dossier du module de script du projet à partir du fichier 'config.defaut.ini'."; |
throw new Exception($erreur); |
} |
} |
|
private function charger($fichier) { |
// vérifier si fichier existe |
// charger fichier |
// vérifier séparateur |
// vérifier nom colonne |
// vérifier si colonne "titre" et "auteur" sont bien présent |
// modifier champ editeur ajouter AUTRES## |
// vérifier si auteurs sont déjà présents et récupérer le numéro (publi_a_pers) |
// créer champ nom complet |
// faire un insert |
|
$chemin = Config::get('dossiertmp').$fichier; |
$table = Config::get('tables.publication'); |
$requete = "LOAD DATA INFILE '$chemin' ". |
" INTO TABLE $table ". |
'CHARACTER SET utf8 '. |
'FIELDS '. |
" TERMINATED BY ';' ". |
" ENCLOSED BY '\"' ". |
" ESCAPED BY '\\\' ". |
'IGNORE 0 LINES (`cpu_ce_truk_editeur`, `cpu_collection`, `cpu_indication_nvt`, `cpu_fascicule`, `cpu_date_parution`, `cpu_truk_pages`, `cpu_titre`, `cpu_fmt_auteur`, cpu_resume_motcle)'; |
$this->bdd->requeter($requete); |
} |
|
} |
?> |