Просмотр поста

.
Krite
<?php
// функция получает в качестве параметра путь к папке, которую надо удалить 
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); // удаляем папку 
}
?>