Посмотри эту.
// функция получает в качестве параметра путь к папке, которую надо удалить
function deleteDirectory($dir) { // сначала проверим а есть ли такая папка вообще
if (!file_exists($dir)) return true; // если параметром передан путь к файлу а не папка, удаляем файл и возвращаем результат удаления
if (!is_dir($dir) || is_link($dir)) return unlink($dir); // если все таки передан не файл, а папка, обрабатываем ее содержимое
foreach (scandir($dir) as $item) { // проверяем каждый элемент (как файлы так и папки) папки
if ($item == '.' || $item == '..') continue; // пропускаем ненужные вещи
if (!deleteDirectory($dir . "/" . $item)) { // вызываем рекурсивно deleteDirectory() передав теперь в качестве параметра путь к обрабатываемому элементу
chmod($dir . "/" . $item, 0777); // если удаление не удалось, меняем права доступа к файлу/папке
if (!deleteDirectory($dir . "/" . $item)) return false;// если и теперь удаелние не удалось, выходим из рекурсии
};
}
return rmdir($dir); // удаляем папку
}За работоспособность не отвечаю. Гг. Писал не я. я ток скопировал.
Работать должна.