58 lines
2.3 KiB
PHP
58 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);
|
|
// print_r($contents);
|
|
// print_r(ftp_rawlist($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);
|
|
// 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;
|
|
// 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) {
|
|
//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);
|
|
//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))
|
|
//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;
|
|
}
|
|
|
|
?>
|