2011-10-11 2 views
0

Je crée une application Web personnalisée qui stocke les paramètres FTP et MySQL pour les sites Web que je gère pour les clients. Mon but n'est pas seulement de stocker les paramètres pour référence, mais de créer des fonctionnalités pour aider à faire des sauvegardes régulières. J'ai la fonctionnalité de sauvegarde MySQL qui fonctionne très bien, car il se connecte aux bases de données distantes, crée un vidage et l'envoie à mon navigateur pour le télécharger localement. MAIS ... quel est le meilleur moyen de se connecter à un FTP distant et de télécharger tout le contenu d'un dossier spécifique sur mon ordinateur local?Utiliser PHP pour se connecter au FTP et sauvegarder tout le contenu du dossier

Toutes les suggestions seraient incroyables!

Répondre

0

Cet exemple du manuel php posté par mroerick pourrait vous aider.

<?php 
$ftp_server = "ftp.example.com"; 
$conn_id = ftp_connect ($ftp_server) 
    or die("Couldn't connect to $ftp_server"); 

$login_result = ftp_login($conn_id, "user", "pass"); 
if ((!$conn_id) || (!$login_result)) 
    die("FTP Connection Failed"); 

ftp_sync ("."); 

ftp_close($conn_id); 

function ftp_sync ($dir) { 

    global $conn_id; 

    if ($dir != ".") { 
     if (ftp_chdir($conn_id, $dir) == false) { 
      echo ("Change Dir Failed: $dir<BR>\r\n"); 
      return; 
     } 
     if (!(is_dir($dir))) 
      mkdir($dir); 
     chdir ($dir); 
    } 

    $contents = ftp_nlist($conn_id, "."); 
    foreach ($contents as $file) { 

     if ($file == '.' || $file == '..') 
      continue; 

     if (@ftp_chdir($conn_id, $file)) { 
      ftp_chdir ($conn_id, ".."); 
      ftp_sync ($file); 
     } 
     else 
      ftp_get($conn_id, $file, $file, FTP_BINARY); 
    } 

    ftp_chdir ($conn_id, ".."); 
    chdir (".."); 

} 
?> 
+0

Merci Jonas! Je vais essayer! – matthoiland

+0

Vos la plupart du temps bienvenue. Bonne journée. –

Questions connexes