我发现这个问题(这里)有关复制文件而不覆盖
的问题How do you copy a file in PHP without overwriting an existing file?
我需要的是一个用于复制文件夹中所有文件的php脚本,还有一些子文件夹;所以它应该是递归的。
我需要通过FTP传输它,所以我不知道这对方法有很大影响。
提前多多感谢!
答案 0 :(得分:3)
function recurse_copy($src,$dst) {
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
请注意,此解决方案将很乐意覆盖$dst
目录中存在的所有文件。如果您想避免这种情况,可以将this question中的代码包装到函数中,然后调用该函数而不是copy
。
如果您澄清我很乐意编辑我的答案,我不确定您想通过FTP传输什么。
答案 1 :(得分:0)
文件系统副本和FTP副本之间存在很大差异,您可以查看PEAR FTP Class