Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP copy()将文件转换为文件夹_Php_Copy - Fatal编程技术网

PHP copy()将文件转换为文件夹

PHP copy()将文件转换为文件夹,php,copy,Php,Copy,我找到了Rich Rodecker的这段代码。它工作正常,只是如果文件夹中有文件,它会将它们转换为文件夹 下面是上面链接中的PHP代码片段 function copyr($source, $dest){ // Simple copy for a file if (is_file($source)) { $c = copy($source, $dest); chmod($dest, 0777); return $c; }

我找到了Rich Rodecker的这段代码。它工作正常,只是如果文件夹中有文件,它会将它们转换为文件夹

下面是上面链接中的PHP代码片段

function copyr($source, $dest){
    // Simple copy for a file
    if (is_file($source)) {
        $c = copy($source, $dest);
        chmod($dest, 0777);
        return $c;
    }
    // Make destination directory
    if (!is_dir($dest)) {
        $oldumask = umask(0);
        mkdir($dest, 0777);
        umask($oldumask);
    }
    // Loop through the folder
    $dir = dir($source);
    while (false !== $entry = $dir->read()) {
        // Skip pointers
        if ($entry == "." || $entry == "..") {
            continue;
        }

        // Deep copy directories
        if ($dest !== "$source/$entry") {
            copyr("$source/$entry", "$dest/$entry");
        }
    }
    // Clean up
    $dir->close();
    return true;
}

copyr("copy","copy2");
例如,这是站点的当前结构

- Root
- - index.php (Code here that runs copy function)
- - copy (DIR)
- - - index.html (Dummy content in file)
当我运行index.php时,它会创建以下内容:

- Root
- - index.php (Code here that runs copy function)
- - copy (DIR)
- - - index.html (HTML)

- - copy2 (DIR)
- - - index.html (DIR)
- - - - EMPTY
有人能看到问题所在并提供解决方案吗?我希望能够指定一个目录,并让它备份整个目录,包括子文件夹和文件

来自:

请注意,如果父目录没有 +为你准备了一套;这是有道理的,但其他函数(如readdir)似乎没有这种限制。最终的结果是你可以 循环浏览目录的文件,但is_文件将始终失败


检查源目录的权限。

完成了任何基本调试,例如将一些输出放入isdir/isfile测试区域以查看发生了什么?有趣的概念很好用。我会说它不起作用fine@RiggsFolly下面的“除此之外”很好地结合在一起,使这句话起作用,从而阐明了代码的其余部分起作用,并使焦点成为这一个bug。非常清晰。除非代码不起作用。扔掉它,模仿别人的努力。