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<75>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<75>r<EFBFBD>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 <20>t<EFBFBD> modifi<66> le ".date("d/m/Y <20> H:i:s.",$dateDist)."\n";
|
|||
|
} else {
|
|||
|
$tabFichiers[$server_file]['dateDispo']=NULL;
|
|||
|
// echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de r<>cup<75>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<EFBFBD>charg<72> avec succ<63>s".EOL;
|
|||
|
$nbFic++;
|
|||
|
else {
|
|||
|
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file non t<>l<EFBFBD>charg<72> !".EOL;
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Fermeture de la connexion
|
|||
|
ftp_close($conn_id);
|
|||
|
return $nbFic;
|
|||
|
}
|
|||
|
|
|||
|
?>
|