extranet/library/common/ftp.php
2011-04-20 07:09:48 +00:00

56 lines
2.3 KiB
PHP

<?php
function ftp_mget($ftp_url, $ftp_user, $ftp_pass, $ftp_dir, $local_dir, $debug=null) {
$conn_id = @ftp_connect($ftp_url);
if (!$conn_id) {
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de se connecter au serveur FTP ($ftp_url) !".EOL;
return false;
}
$login_result = @ftp_login($conn_id, $ftp_user, $ftp_pass);
if (!$login_result) {
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de s'authentifier sur le serveur FTP (user=$ftp_user)!".EOL;
return false;
}
// Récupération du contenu d'un dossier
$contents = ftp_nlist($conn_id, $ftp_dir);
$nbFic=0; // Nombre de fichiers récupérés
if (is_array($contents))
foreach($contents as $k => $server_file) {
$tailleDist = ftp_size($conn_id, $server_file);
$dateDist = ftp_mdtm($conn_id, $server_file);
$tailleLoc=0;
if ($dateDist != -1) {
$tabFichiers[$server_file]['dateDispo']=date('Y-m-d H:i:s', $dateDist);
if ($debug<>null) echo date ('Y/m/d - H:i:s') ." - Le fichier distant $server_file a été modifié le ".date("d/m/Y à H:i:s.",$dateDist)."\n";
} else {
$tabFichiers[$server_file]['dateDispo']=NULL;
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de récupérer l'heure de modification du fichier distant $server_file !\n";
}
$tabFichiers[$server_file]['taille']=$tailleDist;
if ($tailleDist != -1) {
if ($debug<>null) echo date ('Y/m/d - H:i:s') ." - Taille du fichier distant $server_file est de $tailleDist octets\n";
}
if (file_exists($local_dir . $server_file)) {
$dateLoc=filemtime($local_dir . $server_file);
$tabFichiers[$server_file]['dateDownload']=date('Y-m-d H:i:s', $dateLoc);
$tailleLoc=filesize($local_dir . $server_file);
if ($debug<>null) echo date ('Y/m/d - H:i:s') ." - Taille du fichier local $server_file = $tailleLoc octets\n";
}
if ($tailleDist<>$tailleLoc) {
if (ftp_get($conn_id, $local_dir. $server_file, $server_file, FTP_BINARY)) {
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL;
$nbFic++;
} else {
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file non téléchargé !".EOL;
return false;
}
}
}
// Fermeture de la connexion
ftp_close($conn_id);
return $nbFic;
}
?>