Я работаю на панели Minecraft Server Dashboard, и одна из ее функций – резервное копирование и восстановление вашего мира (каталога). У меня уже есть функция (см. Ниже), но, как вы можете видеть, это довольно плохой код. Кто-нибудь знает о лучшей, более чистой функции?
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."; } }