使用FTP传输整个目录的PHP方法?

时间:2009-12-22 16:49:25

标签: php ftp zip

我一直在尝试为我正在构建的cms构建一个自动更新系统的方法,该系统可能安装在众多服务器上(可能具有不同的配置)。我想出的是将当前版本保存到我的服务器的预定目录中。然后让分布式系统每隔一段时间检查一次该目录(在远程服务器上)以查看是否已上载新版本。如果上载版本的版本号大于特定系统的版本号,则会提示管理员更新。然后将文件通过FTP复制到tmp目录中,然后从tmp复制以替换每个文件的旧版本。然后删除tmp目录,并增加系统版本号。

这个问题是,我还没有找到通过PHP FTP传输整个目录的方法。我知道我可以将其压缩并以这种方式传输,但我还没有找到一种在各种服务器环境中解压缩文件的可靠方法。

我知道我可以编写自己的方法,只需要遍历每个目录并一次传输一个文件,这很好。我只是想知道其他人是否已经写过这样的内容,或者在我深入了解之前是否有人知道这个问题的替代解决方案。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

为什么不压缩文件夹以节省带宽和时间,而不是发送目录?然后在目标服务器上解压缩。 已删除,因为它不是OP的选项

您可以使用PHAR存档进行应用部署(如果您想成为最前沿的现代产品)

或者您可以为Phing编写一个更新脚本,从您的服务器获取文件。您甚至可以从SVN进行检查,而不是将构建放在目录中。

答案 1 :(得分:0)

尝试使用exec()从命令行运行lftp:

/usr/bin/lftp -e 'o ftp://ftp.example.com/path/to/remote/directory && mirror --verbose && quit'