PHP: Unlink All Files Within A Directory, and then Deleting That Directory
Use glob()
to easily loop through the directory to delete files then you can remove the directory.
foreach (glob($dir."/*.*") as $filename) {
if (is_file($filename)) {
unlink($filename);
}
}
rmdir($dir);
Use glob
to find all files matching a pattern.
function recursiveRemoveDirectory($directory)
{
foreach(glob("{$directory}/*") as $file)
{
if(is_dir($file)) {
recursiveRemoveDirectory($file);
} else {
unlink($file);
}
}
rmdir($directory);
}
The glob()
function does what you're looking for. If you're on PHP 5.3+ you could do something like this:
$dir = ...
array_walk(glob($dir . '/*'), function ($fn) {
if (is_file($fn))
unlink($fn);
});
unlink($dir);