Нужна функция которая удаляет категории вместе с файлами

533
.
Нужна функция которая удаляет категории вместе с файлами
функция
rmdir() не пойдет(так как имеются вложености)
и функции FTP тоже
других что то в php не нашел, если кто знает подскажите, просто не охото писать свою функцию для этого.
.
функцию deletcat есть в двиге. Она удаляет лапки с файлами любой вложенности
.
function full_del_dir ($directory)
{
/////////////////////////////////
//рекурсивное удаление папки/////
/////////////////////////////////

$dir=opendir($directory);
while(($file=readdir($dir)))
  {
    if ( is_file ($directory."/".$file))
    {
      unlink ($directory."/".$file);
    }
    else if ( is_dir ($directory."/".$file) && ($file != ".") && ($file != ".."))
    {
      full_del_dir ($directory."/".$file);  
    }
  }
  closedir ($dir);
  rmdir ($directory);
  return TRUE;
}

как то так
.
torsen, Ну о ней я знаю мне она не очень нравится,
за флудить ее можно, так как будут иметь доступ обычные пользователи.
.
web_demon, Тоже самое что и в джоне вроде.
.
Krite, О точняк! но зато моя версия возвращает TRUE при удачно выполненой онерации,
.
В стельку трезвый
у пыха вроде бы нет такой функции. Так что только свою писать.
.
тьфу, блин, Операции
.
В стельку трезвый
Посмотри эту.
// функция получает в качестве параметра путь к папке, которую надо удалить
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); // удаляем папку
}

За работоспособность не отвечаю. Гг. Писал не я. я ток скопировал.
Работать должна.
.
Максим, пых 5. Используется в сравнении с предыдущей функцией. завтра гляну ее работу. сегодня уже поздно. спасибо.
Всего: 11