"Affiche l'aide.", 'send-s' => "Envoi tous les fichiers non traité par FTP (si nom du fichier fourni force l'envoi).", 'delete' => "Supprime les anciens fichiers et leurs références", 'save=s' => "Enregistre la présence d'un fichier" )); $opts->parse(); } catch (Zend_Console_Getopt_Exception $e) { echo $e->getUsageMessage(); exit; } //Usage if(count($opts->getOptions())==0 || isset($opts->help)) { echo "Bilan en commande saisi."; echo "\n\n"; echo $opts->getUsageMessage(); echo "\n"; exit; } $test = false; if ( isset($opts->list) ) { $test = true; } $c = new Zend_Config($application->getOptions()); Zend_Registry::set('config', $c); define ('PATH_DATA', $c->profil->path->shared); define('FTP_HOST', 'ftp.scores-decisions.com'); define('FTP_USER', 'bilansext'); define('FTP_PASS', 'j12azt78'); define('FTP_DIR', 'send'); // --- Functions function sendToFtp($localFile, $remoteFile) { $conn_id = ftp_connect(FTP_HOST); $login_result = ftp_login($conn_id, FTP_USER, FTP_PASS); ftp_chdir($conn_id, FTP_DIR); $return = false; if (ftp_put($conn_id, $remoteFile, $localFile, FTP_BINARY)) { $return = true; } ftp_close($conn_id); return $return; } // --- Connexion à la base de données $db = Zend_Db::factory($c->profil->db->sdv1); Zend_Db_Table_Abstract::setDefaultAdapter($db); $model = new Application_Model_BilanInput(); // --- Suppression des fichiers traités if ( $opts->delete ) { echo date('Y-m-d H:i:s')." - Suppression fichier.\n"; try { $sql = $model->select()->where('sent=?', 1)->where('DATE_SUB(CURDATE(),INTERVAL 30 DAY) >= dateUpdate'); $result = $model->fetchAll($sql); if (count($result) > 0) { foreach ($result as $item) { if( unlink(PATH_DATA . '/persist/bilanclient/' . $item->file) ){ $model->delete("file='".$item->file."'"); } } } } catch(Zend_Db_Exception $e) { echo date('Y-m-d H:i:s')." - ".$e->getMessage().".\n"; } echo date('Y-m-d H:i:s')." - Suppression fichier FIN.\n"; } if ( $opts->save ) { echo date('Y-m-d H:i:s')." - Enregistrement fichier.\n"; $model->insert(array('file' => $opts->save, 'sent' => 0)); echo date('Y-m-d H:i:s')." - Enregistrement fichier FIN.\n"; } // --- Envoi if ( $opts->send ) { echo date('Y-m-d H:i:s')." - Envoi fichier.\n"; $tabFichier = array(); // --- Selection fichier if ( $opts->send !== true ) { $tabFichier[] = basename($opts->send); } else { $sql = $model->select()->where('sent=?', 0); $result = $model->fetchAll($sql); if (count($result) > 0) { foreach($result as $item) { $tabFichier[] = $item->file; } } } // --- Envoi sur le FTP if (count($tabFichier) > 0) { foreach ($tabFichier as $fichier) { echo date('Y-m-d H:i:s')." - Envoi fichier "; if ( sendToFtp(PATH_DATA.'/persist/bilanclient/'.$fichier, $fichier) ) { $model->setFlagSent($fichier); echo $fichier." - OK"; } else { echo $fichier." - Erreur"; } echo "\n"; } } echo date('Y-m-d H:i:s')." - Envoi fichier FIN.\n"; }