Как удалить папку с её содержимым на php
Функция RDir рекурсивно удаляет папку, т.е. удаляет саму папку, а также все подпапки и файлы, находящиеся в ней.
Ниже привожу код функции с комментариями:
PHP
<?php
function RDir($path)
{
// если путь существует и это папка
if (file_exists($path) && is_dir($path)) {
// открываем папку
$dir = opendir($path);
while (false !== ($element = readdir($dir))) {
// удаляем только содержимое папки
if ($element != '.' && $element != '..') {
$tmp = $path . '/' . $element;
chmod($tmp, 0777);
// если элемент является папкой, то
// удаляем его используя нашу функцию RDir
if (is_dir($tmp)) {
RDir($tmp);
} else {
// если элемент является файлом, то удаляем файл
unlink($tmp);
}
}
}
// закрываем папку
closedir($dir);
// удаляем саму папку
if (file_exists($path)) {
rmdir($path);
}
}
}
Пример использования:
PHP
$dir = $_SERVER['DOCUMENT_ROOT'] . '/example';
RDir($dir);
Комментарии 7
Кулл, благодарю за рабочий код!
Работает! Спасибо.
А как сделать так, чтобы можно было удалить несколько определенных папок за один запуск скрипта?
Несколько раз вызвать в нем RDir(), примерно так:
RDir( $_SERVER['DOCUMENT_ROOT']. '/example' ); RDir( $_SERVER['DOCUMENT_ROOT']. '/example2' );А как удалять папки не знаю их названия? Допустим хочу просто удалить 10 папок
Через цикл не пробовал?
А где файл надо указывать?
Написать комментарий