因此,我试图创建一个函数来创建文件夹和所有内容的本地副本(带有子文件夹),并将副本发送到远程服务器,本地副本是可以的,但是ftp副本没有按其应有的方式格式化。它们都有所有的文件,但是ftp版本没有正确地格式化文件结构。我找了一下,但找不到任何关于这个问题的帖子,所以任何指点都会有帮助。
示例:正确
- sub-1
- sub-2
- sub-3
- sub-4
- sub of 4 - 1
- sub of 4 - 2
但这就是我得到的,
1
H 114Sub3H 215H 116sub2H 217H 118子
以下是代码:
function copyr($source, $dest, $conId) {
$sourceName = explode('/',$dest);
$sourceName = $sourceName[count($sourceName)-1];
// copy file
if (is_file($source)) {
$upLink = ftp_fput($conId, $sourceName, fopen($source, 'r'), FTP_ASCII);
return copy($source, $dest);
}
// Make destination directory
if (!is_dir($dest)) {
mkdir($dest);
ftp_mkdir($conId, $sourceName);
ftp_chdir($conId, $sourceName);
} else if(is_dir($dest)){ // go to one that has been made.
ftp_chdir($conId, $sourceName);
}
// Loop the folder
$dir = dir($source);
while (false !== $entry = $dir->read()) {
// Skip pointers
if ($entry == '.' || $entry == '..') {
continue;
}
// Copy sub directories
if ($dest !== "$source/$entry") {
copyr("$source/$entry", "$dest/$entry", $conId, $entry);
}
}
// Clean up
$dir->close();
return true;
}
$source = 'images';
$dest = 'NewImages';
if(copyr($source, $dest, $conId)){
echo "It's finished .... Good.";
} else {
echo "Failed ... ";
}
ftp_close($conId);其中一部分是我从php.net复制的其他部分,它们是在查看了ftp的.net手册之后组装在一起的。
谢谢。
发布于 2012-05-03 20:36:57
从递归返回后,您忘记退出目录(例如cd ..)。
https://stackoverflow.com/questions/10438838
复制相似问题