Transfert FTP

Transfert des fichiers entre les répertoires sur un serveur FTP
$destination : valeur "tolocal" ou "tohost"
$resultat est un tableau
$resultat[1] :fichier local a transférer sur l'hote
$resultat[-1] :fichier hote a transférer en local

3 653  vues
Compatibilité du code
PHP 5, PHP 7 et PHP 8
  code classé dans   FTP
  code source classé dans   FTP
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
                    
<?php
/*------------------------------*/
/*
Titre : Transfert FTP

Date édition : 14 Fev 2019
*/
/*------------------------------*/

function transfert($server , $user , $pass , $remote , $local , $destination ,
$resultat){
$last=substr($remote, -1);
$last2=substr($local, -1);
if ($last !="/") {$remote=$remote."/";}
if ($last !="/") {$local=$local."/";}

$ftpc=ftp_connect($server);
$result_login=ftp_login($ftpc, $user, $pass);
if ((!$result_login) || (!$ftpc)){
return "impossible de se connecter";
die;
}

switch($destination) {
case "tohost" :
$retour="";
$fichiers= array_values($resultat[1]);
foreach($fichiers as $nb) {
$local_dest=$remote.$nb;
$put= ftp_put($ftpc, $local_dest, $local.$nb, FTP_BINARY);
if (!$put) {
$retour.= "Le telechargement de $nb a echoue \n";
}
else {
$retour.= "telechargement de $nb vers $remote reussi \n";
}
}
return $retour;
break;


case "tolocal" :
$retour="";
$fichiers= array_values($resultat[-1]);
foreach($fichiers as $nb) {
$remote_dest=$local.$nb;
$put= ftp_put($ftpc, $remote_dest, $remote.$nb, FTP_BINARY);
if (!$put) {
$retour .= "Le telechargement de $nb a echoue \n";
}
else {
$retour .= "telechargement de $nb vers $local reussi \n";
}
}
return $retour;
break;

}
ftp_quit($ftpc);
}

?>
<?php
/*------------------------------*/
/*
Titre : Transfert FTP

Date édition : 14 Fev 2019
*/
/*------------------------------*/

function transfert($server , $user , $pass , $remote , $local , $destination ,
$resultat){
$last=substr($remote, -1);
$last2=substr($local, -1);
if ($last !="/") {$remote=$remote."/";}
if ($last !="/") {$local=$local."/";}

$ftpc=ftp_connect($server);
$result_login=ftp_login($ftpc, $user, $pass);
if ((!$result_login) || (!$ftpc)){
return "impossible de se connecter";
die;
}

switch($destination) {
case "tohost" :
$retour="";
$fichiers= array_values($resultat[1]);
foreach($fichiers as $nb) {
$local_dest=$remote.$nb;
$put= ftp_put($ftpc, $local_dest, $local.$nb, FTP_BINARY);
if (!$put) {
$retour.= "Le telechargement de $nb a echoue \n";
}
else {
$retour.= "telechargement de $nb vers $remote reussi \n";
}
}
return $retour;
break;


case "tolocal" :
$retour="";
$fichiers= array_values($resultat[-1]);
foreach($fichiers as $nb) {
$remote_dest=$local.$nb;
$put= ftp_put($ftpc, $remote_dest, $remote.$nb, FTP_BINARY);
if (!$put) {
$retour .= "Le telechargement de $nb a echoue \n";
}
else {
$retour .= "telechargement de $nb vers $local reussi \n";
}
}
return $retour;
break;

}
ftp_quit($ftpc);
}

?>

      Fonctions du code - Doc officielle PHP

   php.net  
Description
Versions PHP
    array_values
Retourne toutes les valeurs d'un tableau
PHP 4, 5, 7 et 8
    die
Alias de la fonction exit
PHP 4, 5, 7 et 8
    ftp_connect
Ouvre une connexion FTP
PHP 4, 5, 7 et 8
    ftp_login
Identification sur un serveur FTP
PHP 4, 5, 7 et 8
    ftp_put
Charge un fichier sur un serveur FTP
PHP 4, 5, 7 et 8
    ftp_quit
Alias de ftp_close
PHP 4, 5, 7 et 8
    return
Retourne le controle du programme au module appelant
PHP 4, 5, 7 et 8
    substr
Retourne un segment de chaîne
PHP 4, 5, 7 et 8
Minimum 10 mots. Votre commentaire sera visible après validation.

  Les derniers scripts

PHP 8.5.5

logo PHP
Langue langue us
Date 12 Avril
Taille 32 Mo
Catégorie PHP

PHP 8.4.20

logo PHP
Langue langue us
Date 12 Avril
Taille 30 Mo
Catégorie PHP

Serendipity 2.6.0

logo Serendipity
Langue langue fr
Date 11 Avril
Taille 15 Mo
Catégorie Blogs

Drupal 11.3.6

logo Drupal
Langue langue us
Date 11 Avril
Taille 34 Mo
Catégorie CMS

TYPO3 14.2.0

logo TYPO3
Langue langue fr
Date 10 Avril
Taille 38 Mo
Catégorie CMS

Dolibarr ERP 23.0.1

logo Dolibarr ERP
Langue langue fr
Date 09 Avril
Taille 89 Mo
Catégorie Logiciels