首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件结构问题,来自php的ftp。

文件结构问题,来自php的ftp。
EN

Stack Overflow用户
提问于 2012-05-03 20:26:57
回答 1查看 123关注 0票数 0

因此,我试图创建一个函数来创建文件夹和所有内容的本地副本(带有子文件夹),并将副本发送到远程服务器,本地副本是可以的,但是ftp副本没有按其应有的方式格式化。它们都有所有的文件,但是ftp版本没有正确地格式化文件结构。我找了一下,但找不到任何关于这个问题的帖子,所以任何指点都会有帮助。

示例:正确

  • Main

代码语言:javascript
复制
- sub-1    
- sub-2
- sub-3
- sub-4 
    - sub of 4 - 1
    - sub of 4 - 2

但这就是我得到的,

1

  • main
    • Sub4
      • Sub0f 4-1
        • Sub0f 4-2H 114Sub3H 215H 116sub2H 217H 118

以下是代码:

代码语言:javascript
复制
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手册之后组装在一起的。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-03 20:36:57

从递归返回后,您忘记退出目录(例如cd ..)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10438838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档