PHP 多目录删除

PHP Multi Directory delete

所以我正在创建一个图片上传站点,我需要同时删除多个目录和文件。我已经设法创建了完成这项工作的代码,但是我不确定这是否是 'good code',因为我在重复自己。

有没有更好的写法?

$dirname = 'uploads/'.$album_id;
$dirnamethumb = 'uploads/thumbs/'.$album_id;

if (is_dir($dirname))
    $dir_handle = opendir($dirname);
if (!$dir_handle)
    return false;
while($file = readdir($dir_handle)) {
    if ($file != "." && $file != "..") {
        if (!is_dir($dirname."/".$file))
            unlink($dirname."/".$file);
        else
            delete_directory($dirname.'/'.$file);
    }
}

if (is_dir($dirnamethumb))
    $dir_handle = opendir($dirnamethumb);
if (!$dir_handle)
    return false;
while($file = readdir($dir_handle)) {
    if ($file != "." && $file != "..") {
        if (!is_dir($dirnamethumb."/".$file))
            unlink($dirnamethumb."/".$file);
        else
            delete_directory($dirnamethumb.'/'.$file);
    }
}
closedir($dir_handle);
rmdir($dirname);
rmdir($dirnamethumb);
return true;

提前感谢您的帮助!

试试这个,

$dir = '/path/to/some/dir/'; // notice: trailing slash!
if ($handle = opendir($dir)) {
    while (false !== ($entry = readdir($handle))) {
        if (is_dir($dir . $entry) ) {
            rmdir($dir . $entry);
        }
    }
    closedir($handle);
}
?>

为什么不试试 similar question

中的这个递归函数
function rrmdir($dir) { 
  foreach(glob($dir . '/*') as $file) { 
    if(is_dir($file)) 
      rrmdir($file); 
    else 
      unlink($file); 
  } rmdir($dir); 
}