2011-10-11 2 views
0

클라이언트 용으로 관리하는 웹 사이트에 대한 FTP 및 MySQL 설정을 저장하는 사용자 정의 웹 앱을 구축 중입니다. 내 목표는 참조를 위해 설정을 저장하는 것이 아니라 정기적 인 백업 수행을 돕는 기능을 만드는 것입니다.PHP를 사용하여 FTP에 연결하고 모든 폴더 내용 백업

원격 데이터베이스에 연결하고 덤프를 생성하고이를 로컬 브라우저로 다운로드하여 브라우저에 다운로드하므로 MySQL 백업 기능이 훌륭하게 작동합니다.

하지만 ... 원격 FTP에 연결하고 특정 폴더의 모든 내용을 로컬 컴퓨터로 다운로드하는 가장 좋은 방법은 무엇입니까?

모든 의견은 훌륭합니다!

답변

0

mroerick이 게시 한 PHP 설명서의 다음 예가 도움이 될 수 있습니다.

<?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

감사합니다. Jonas! 나는 그것을 한 번 줄 것이다! – matthoiland

+0

대단히 환영합니다. 좋은 하루 되세요. –

관련 문제