PHP复制目录功能

Jam*_*ain 0 php directory

我正在使用Minecraft服务器仪表板,其中一个功能是备份和恢复您的世界(目录).我已经有了一个函数(见下文),但是,正如你可能看到的那样,代码非常糟糕.谁知道更好,更清洁的功能?

function backupOrRestoreWorld($source,$target){
    foreach(glob($target.'*.*')as$v){
        unlink($v);
    }
    if(is_dir($source)){
        @mkdir($target);
        $d=dir($source);
        while(FALSE!==($entry=$d->read())){
            if($entry=='.'||$entry=='..'){
                continue;
            }
            $Entry=$source.'/'.$entry;
            if(is_dir($Entry)){
                backupOrRestoreWorld($Entry,$target.'/'.$entry);
                continue;
            }
            copy($Entry,$target.'/'.$entry);
        }
        $d->close();
    }
    else{
        copy($source,$target);
    }
    if($source == "server/world"){
        return "World backed up.";
    }
    else {
        return "World restored from backup.";
    }
}
Run Code Online (Sandbox Code Playgroud)

Ari*_*iel 6

我不会在PHP中这样做.只是用system("cp -a $source $dest").(并确保用户不能以任何方式控制的内容$source$dest否则你会被砍死.)