PHP FTP库/函数将整个目录和子目录下载到本地驱动器

时间:2011-10-25 16:32:39

标签: php ftp

有没有人知道PHP FTP库/函数能够将整个目录下载到本地驱动器。我试过写一个函数来做到这一点,但它超越了我: - (

我无法使用安全副本或类似的东西,它必须是从本地计算机运行的PHP脚本,以登录到远程服务器并下载指定的目录。

谢谢!

3 个答案:

答案 0 :(得分:2)

http://php.net/manual/en/function.ftp-get.php

在评论中查看:mroerick at gmx dot net 15-May-2009 07:42

想法是:登录>获取文件列表>下载文件,如示例所示。

答案 1 :(得分:0)

我刚刚发布了2个新库,可以在FTP / SFTP

中执行此类操作

以递归方式复制远程SFTP服务器上的文件和文件夹(如果local_path以斜杠上传文件夹内容结束,否则上传文件夹本身)

Ftp::upload_dir($server, $user, $password, $local_path, $remote_path, $port = 22);

从远程FTP服务器下载目录(如果remote_dir以斜杠下载文件夹内容结束,否则下载文件夹本身)

Ftp::download_dir($server, $user, $password, $remote_dir, $local_dir, 

$ port = 22);

答案 2 :(得分:0)

使用此library可以非常容易地做到这一点:

代码:

$connection = new FtpConnection('host', 'username', 'password');

$client = new FtpClient($connection);

if (asyncDownload('yourLocalFolder', '.')) {
    echo 'Done!';
}

function syncDownload($localDir, $remoteDir)
{
    global $client;
    
    if (!is_dir($localDir)) {
        mkdir($localDir);
    }
    
    /**
     * listDirectoryDetails method will recursively gets all the files with
     * their details within the giving directory.
     */
    $files = $client->listDirectoryDetails($dir, true);
    
    foreach($files as $file) {
        $client->download($file['path'], $localDir . '/' . $file['name'], true, FtpWrapper::BINARY);
    }
    
    return true;
}