PHP copy()将文件转换为文件夹
我找到了Rich Rodecker的这段代码。它工作正常,只是如果文件夹中有文件,它会将它们转换为文件夹 下面是上面链接中的PHP代码片段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; }
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。非常清晰。除非代码不起作用。扔掉它,模仿别人的努力。