Удаление каталога и его содержимого
Задача
Необходимо удалить каталог и все его содержимое, включая подкаталоги и их содержимое.
Решение
В UNIX надо выполнить команду rm:
$directory = escapeshellarg($directory);
exec("rm -rf $directory");
В Windows – команду rmdir:
$directory = escapeshellarg($directory);
exec("rmdir /s /q $directory");
Обсуждение
Очевидно, что удаление файлов может быть опасным. Не забудьте вызвать функцию escapeshellarg() для переменной $directory, чтобы не удалить непредусмотренные файлы.
Поскольку встроенная в PHP функция rmdir(), которая удаляет каталоги, работает только с пустыми каталогами, а функция unlink() не принимает групповые символы оболочки, то вызов системной программы намного легче, чем рекурсивное выполнение цикла по всем файлам в каталоге с их удалением и последующим удалением каждого каталога. Однако если внешняя утилита недоступна, то для удаления каждого подкаталога можно модифицировать функцию.
Комментарии:
Нету комментариев для вывода...