function rmdir_recursive_fn($path) { $path = substr($path, -1) == '/' || substr($path, -1) == '\\' ? $path : $path . '/'; resetfilelist(); $files = filelist_fn($path, 1, 0, 'all'); $files = !is_array($files) ? array() : $files; //First delete the files only foreach ($files as $k => $v) { @chmod($k, 0777); if (file_exists($k) && is_file($k) && @filetype($k) == "file") { @unlink($k); } } @clearstatcache(); $folders = filelist_fn($path, 1, 1, 'all'); $folders = !is_array($folders) ? array() : $folders; @krsort($folders); //Now Delete the FOLDERS foreach ($folders as $k => $v) { @chmod($k, 0777); if (is_dir($k)) { @rmdir($k); } } @rmdir($path); @clearstatcache(); }
function copydir_fn($source, $destination) { $source = substr($source, -1) == '/' || substr($source, -1) == '\\' ? $source : $source . '/'; $destination = substr($destination, -1) == '/' || substr($destination, -1) == '\\' ? $destination : $destination . '/'; $source_ = substr($source, 0, -1); $destination_ = substr($destination, 0, -1); if (!is_dir($destination)) { mkdir($destination); } resetfilelist(); $files = filelist($source, 1, 1, 'all'); $files = !is_array($files) ? array() : $files; // Make the folders foreach ($files as $k => $v) { mkdir_recursive(str_replace($source_, $destination_, $k), $globals['dirchmod']); @chmod(str_replace($source_, $destination_, $k), fileperms($k)); } @clearstatcache(); resetfilelist(); $files = filelist($source, 1, 0, 'all'); $files = !is_array($files) ? array() : $files; // Copy the files foreach ($files as $k => $v) { if (file_exists($k) && is_file($k) && @filetype($k) == "file") { copy($k, str_replace($source_, $destination_, $k)); @chmod(str_replace($source_, $destination_, $k), fileperms($k)); } } @clearstatcache(); resetfilelist(); return true; }