Использование функции поиска (как я только что сделал) дало бы вам ответ: stackoverflow.com/questions/3338123/ - personSebastian Wramba  schedule18.03.2012
<?php
// When the directory is not empty:
function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
}
?>
Отредактировал rmdir до rrmdir, чтобы исправить опечатку из-за очевидного намерения создать рекурсивную функцию.
personlorenzo-sschedule18.03.2012
comment
Произошла опечатка, из-за которой глубокие уровни каталогов не работают. if (filetype ($ dir ./.$ object) == dir) rmdir ($ dir ./.$ объект); должен быть rrmdir, чтобы снова вызвать функцию ... В противном случае - круто!
- personamurrell; 18.06.2014
function removeDir($path) {
// Normalise $path.
$path = rtrim($path, '/') . '/';
// Remove all child files and directories.
$items = glob($path . '*');
foreach($items as $item) {
is_dir($item) ? removeDir($item) : unlink($item);
}
// Remove directory.
rmdir($path);
}
removeDir('/path/to/dir');
Это удаляет все дочерние файлы и папки, а затем удаляет переданную ему папку верхнего уровня.
Это может быть связано с некоторой проверкой ошибок, например проверкой указанного пути в каталоге и проверкой каждого удаления успешно.
personalexschedule18.03.2012
comment
если есть подпапки с файлами, эта функция не работает .. удалите, пожалуйста, ваш пост, чтобы не тратить зря время пользователей ..
- personT.Todua; 26.11.2014
comment
@tazotodua Вместо того, чтобы писать плохо построенное предложение, в котором говорится, что оно не работает, почему бы вам не объяснить, почему это не работает, чтобы я мог это исправить?
- personalex; 27.11.2014