/*---------------------------------------------------------------*/
|
/*
|
Titre : Comparaison de fichiers entre le local et le distant
|
|
URL : https://phpsources.net/code_s.php?id=843
|
Date édition : 14 Fév 2019
|
*/
|
/*---------------------------------------------------------------*/
|
|
function compftp($ftp_server , $user , $pass , $local , $remote){
|
// valeur du tableau :
|
-1 : fichier distant plus recent
|
// 1 : fichier locaux plus recent
|
// 0 : fichier egaux (taille et date de modification)
|
|
// creation de la connection
|
$ftpc = ftp_connect($ftp_server);
|
$login_result = ftp_login($ftpc, $user, $pass);
|
if ((!$ftpc) || (!$login_result)) {
|
return "La connexion FTP a echoue!";
|
die;
|
}
|
|
// liste les dossiers en local
|
$handle1=opendir($local);
|
$loc= array();
|
while($liste1=readdir($handle1)){
|
if (!in_array($liste1, array('.', '..'))){
|
$loc[]=$liste1;
|
}
|
sort($loc);
|
}
|
closedir($handle1);
|
|
//liste les dossier sur l'hote
|
$handle=opendir($remote);
|
$hote = array();
|
while ($liste= readdir($handle)) {
|
if (!in_array($liste, array('.', '..'))) {
|
$hote[] = $liste;
|
}
|
sort($hote);
|
}
|
closedir($handle);
|
|
ftp_chdir($ftpc, $local);
|
$retour1=array();
|
$retour11=array();
|
$x=array_diff($hote, $loc);
|
$y=array_diff($loc, $hote);
|
|
foreach($y as $q){
|
$z[$q]=date("d M Y, H i s", ftp_mdtm($ftpc, $q));
|
}
|
$y=$z;
|
$loc=array_intersect($hote, $loc);
|
foreach ($loc as $m) {
|
$retour1[$m] = date("d M Y, H i s", ftp_mdtm($ftpc, $m));
|
$retour11[$m] = ftp_size($ftpc, $m);
|
}
|
|
ftp_cdup($ftpc);
|
ftp_chdir($ftpc, $remote);
|
$retour2=array();
|
$retour22=array();
|
|
foreach($x as $r){
|
$w[$r]=date("d M Y, H i s", ftp_mdtm($ftpc, $r));
|
}
|
$x=$w;
|
$hote=array_intersect($hote, $loc);
|
foreach ($hote as $n) {
|
$retour2[$n] = date("d M Y, H i s", ftp_mdtm($ftpc, $n));
|
$retour22[$n]= ftp_size($ftpc, $n);
|
}
|
|
$result1=array_values($retour1);
|
$result11=array_values($retour11);
|
$result2=array_values($retour2);
|
$result22=array_values($retour22);
|
$resultat = array();
|
|
for ($i=0;$i<count($retour1);$i++) {
|
if ($result1[$i] > $result2[$i]) {
|
$x=array_merge($x, preg_grep("/$result1[$i]/", $retour1));
|
$resultat[-1] = $x;
|
}
|
}
|
|
|
for ($i=0;$i<count($retour2);$i++) {
|
if ($result2[$i] > $result1[$i]){
|
$y=array_merge($y, preg_grep("/$result2[$i]/", $retour2));
|
}
|
}
|
$resultat[1] = $y;
|
|
for ($i=0;$i<count($retour1);$i++){
|
if (($result1[$i] == $result2[$i]) && ($result11[$i] == $result22[$i])){
|
$resultat[0] = $result;
|
}
|
}
|
|
return $resultat;
|
|
// fermeture de la connexion FTP.
|
ftp_quit($ftpc);
|
|
}
|
|
| ?> |