Исходники. Функция рекурсивного удаления каталога

Автор: admin 01 Jun 2009 Отзывы Отзывов: 3

Собственно разрывая исходники, нашел такое:

function rmdir_recursive($dir) {
$files = scandir($dir);
array_shift($files); // remove ‘.’ from array
array_shift($files); // remove ‘..’ from array

foreach ($files as $file) {
$file = $dir . ‘/’ . $file;
if (is_dir($file)) {
rmdir_recursive($file);
if (is_dir($file))
rmdir($file);
} else {
unlink($file);
}
}
rmdir($dir);
}

В чем прелесть этой функции? Дело в том, что PHP не имеет в наборе функцию способную удалить НЕпустой каталог. С помощью вышеприведенной функции вы легко грохните любой каталог с любыми вложенными каталогами и файлами. Работает только для PHP5, для PHP4 поменяйте $files = scandir($dir); на перебор директории, как это представлено например в справочнике.

Ссылка на заметку:

Отзывов: 3

phpdude пишет:
1:13 7.12.2009

вай вай :)

spl не слышал? там есть неплохая вещь для получения дерева файлов в каталоге в виде массива.

выглядит конечно как гавно (ведь это пхп), но юзать можно :))

admin пишет:
4:51 7.12.2009

нет, почитал.
эту функцию и под 4 можно заточить. а кое-где только 4 и стоит

phpdude пишет:
10:27 7.12.2009

если перкратить поддерживать пхп4, то он умрет спокойной смертью, авайте дадим ему умереть, ну пожалуйста :)))

реальни заебал он уже. давно никак не поддерживаю пхп4 и не собираюсь никогда и нигде :)

Оставьте свой отзыв

Имя Сообщение
E-mail (обязательно)
Введите 2 + 1 =