function fullRemoveDir($dirname) { if (self::$rmdir_index) { self::$rmdir_index = false; self::$rmdir = $dirname; } if (!file_exists($dirname)) { return false; } if ($dirHandle = opendir($dirname)) { $old_cwd = getcwd(); chmod($dirname, 0777); chdir($dirname); while ($file = readdir($dirHandle)) { if ($file == '.' || $file == '..') { continue; } if (is_dir($file)) { if (!self::fullRemoveDir($file)) { return false; } } else { chmod($file, 0777); if (!unlink($file)) { return false; } } } closedir($dirHandle); chdir($old_cwd); if (self::$rmdir != $dirname) { if (!rmdir($dirname)) { return false; } } return true; } else { return false; } }