public static function removeDir($dir, $depth = 0)
{
if (!file_exists($dir)) {
//already removed
return true;
}
$dir = self::removeTrailingSlash($dir);
if (!is_writable($dir)) {
return false;
}
if (is_dir($dir)) {
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file == ".." || $file == ".") {
continue;
}
$result = self::removeDir($dir . '/' . $file, $depth + 1);
if (!$result) {
return false;
}
}
closedir($handle);
}
$result = rmdir($dir);
return $result;
} else {
$result = unlink($dir);
return $result;
}
}