Rev 1856 | 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 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);}}?>