如何使用PHP删除空文件夹

<?php 
function rmdirr($dirname){
    // Sanity check
    $dirname = "TEST/";
    if (!file_exists($dirname)) {
        return false;
    }

    // Simple delete for a file
    if (is_file($dirname)) {
        return unlink($dirname);
    }

    // Loop through the folder
    $dir = dir($dirname);
    while (false !== $entry = $dir->read()) {
        // Skip pointers
        if ($entry == "." || $entry == "..") {
            continue;
        }

        // Recurse
        unlink("$dirname/$entry");
    }

    // Clean up
    $dir->close();
    return rmdir($dirname);
}
if (rmdirr($_GET['map'])){
    echo "TEST FERo";
}
else{
    echo "something went wrong.";
}
?>

Its working well and good. But if i need to delete the folder which contains some files and empty folder. In this case it delete all the files but not the empty folder. It throws an exception like…

Warning: unlink(TEST//New Folder) [function.unlink]: Permission denied 
  in E:\Xampp\xampp\htdocs\delete_FILE\delete_FILE.php on line 23

Warning: rmdir(TEST/) [function.rmdir]: Directory not empty in
  E:\Xampp\xampp\htdocs\delete_FILE\delete_FILE.php on line 28

What is the possible way to delete even the folder is empty.

you have to make sure your webserver is able to delete those files. check the permissions.

Just use your rmdirr function recursively in the while loop instead of unlink;

function rmdirr($dirname){ 
  // Sanity check 
  if (!file_exists($dirname)) { return false; }

  // Simple delete for a file 
  if (is_file($dirname)) { return unlink($dirname); }

  // Loop through the folder 
  $dir = dir($dirname); 
  while (false !== $entry = $dir->read()) { 
    // Skip pointers 
    if ($entry == "." || $entry == "..") { continue; }

    // Recurse
    rmdirr("$dirname/$entry"); 

  }

  // Clean up 
  $dir->close(); 
  return rmdir($dirname); 
} 

This way it'll also take care of non-empty subfolders...

You are deleting the files in 1 level only. Your code tries to delete the folder TEST//New Folder using unlink instead of rmdir. You have to check if it's a folder or not, then rmdir or unlink it.