В РНР для удаления файла существует функция unlink(), для удаления пустого каталога — rmdir(). Что делать если нужно рекурсивно удалить папку со всеми файлами и подкаталогами. На помощь приходит glob() в связке с array_map().
Заметьте, что в функции нет ни единого цикла.
function removeDir($path) {
if (is_file($path)) {
@unlink($path);
} else {
array_map('removeDir',glob('/*')) == @rmdir($path);
}
@rmdir($path);
}
Пример вызова
$path = $_SERVER['DOCUMENT_ROOT'].'/test'; removeDir($path);
Источник: https://www.kobzarev.com/programming/the-shortest-recursive-delete-possible/