这应该适合你:
在这里,我只使用glob()从特定路径获取所有目录(PHP 4> = 4.3.0,PHP 5).然后我遍历每个目录并检查它是否为空.
如果它是空的我用rmdir()删除它,否则我检查是否有另一个direcotry并用新目录调用该函数
function removeEmptyDirs($path, $checkUpdated = false, $report = false) {
$dirs = glob($path . "/*", GLOB_ONLYDIR);
foreach($dirs as $dir) {
$files = glob($dir . "/*");
$innerDirs = glob($dir . "/*", GLOB_ONLYDIR);
if(empty($files)) {
if(!rmdir($dir))
echo "Err: " . $dir . "
";
elseif($report)
echo $dir . " - removed!" . "
";
} elseif(!empty($innerDirs)) {
removeEmptyDirs($dir, $checkUpdated, $report);
if($checkUpdated)
removeEmptyDirs($path, $checkUpdated, $report);
}
}
}
?>
removeEmptyDirs
(PHP 4 >= 4.3.3, PHP 5)
removeEmptyDirs — Removes empty directory's
void removeEmptyDirs( string $path [, bool $checkUpdated = false [, bool $report = false ]] )
描述
The removeEmptyDirs() function goes through a directory and removes every empty directory
参数
path
The Path where it should remove empty directorys
checkUpdated
If it is set to TRUE it goes through each directory again if one directory got removed
report
If it is set to TRUE the function outputs which directory get's removed
返回值
None
举个例子:
如果$checkUpdated为TRUE,那么这样的结构将被完全删除:
- dir
| - file.txt
| - dir
| - dir
结果:
- dir
| - file.txt
如果它像默认值一样为FALSE,结果将是:
- dir
| - file.txt
| - dir //See here this is still here
如果$report为TRUE,则会得到如下输出:
test/a - removed!
test/b - removed!
test/c - removed!
否则你没有输出