6

我整个上午都在寻找这个。

是否有一个简单的 PHP 函数可以在我的服务器上复制一个文件夹,如果需要,可以临时更改权限?基本上是我使用 FTP 复制整个文件夹然后再次备份的 PHP 替代方案?

我已经尝试了我在网上找到的下面的功能,但我认为它没有做任何事情,我认为可能是由于权限。我已经尝试过error_reporting(E_ALL);并检查了 each 的返回值copy(),它们都返回 false。

copy_directory('/directory1','/directory2') 

function copy_directory($src,$dst) { 
    $dir = opendir($src); 
    @mkdir($dst); 
    while(false !== ( $file = readdir($dir)) ) { 
        if (( $file != '.' ) && ( $file != '..' )) { 
            if ( is_dir($src . '/' . $file) ) { 
                copy_directory($src . '/' . $file,$dst . '/' . $file); 
            } 
            else { 
                copy($src . '/' . $file,$dst . '/' . $file); 
            } 
        } 
    } 
    closedir($dir); 
}  
4

2 回答 2

7

发布赏金后,我收到了对服务器支持票证的回复,证实了我认为权限是问题所在。

在服务器端进行简单的更改以授予 PHP 复制权限即可解决此问题。

于 2012-11-19T10:06:15.130 回答
1

以某种方式检查代码中的重复项怎么样?

<?php
if(!file_exists($dst)) {
    mkdir($dst);
}
else {
    $i = 1;
    $duplicate_folder = true;
    while ($duplicate_folder == true) {
        if(file_exist($dst) {
            $new_dst = $dst."_".$i;
            mkdir($new_dst);
            $i++;
        }
        else {
            $duplicate_folder = false;
        }
    }
}
?>
于 2012-11-15T11:23:54.323 回答