[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рекурсивное удаление каталога
Aleks-prog
Помогите если не трудно с удалением каталога, немного запутался

Дело в том, что удаляет вложенные в каталоги файлы, а обратно не возвращается чтобы удалить все что ближе к корню, удаляет только если только заново обновить страницу, хотелось бы без обновлений страницы обойтись

	header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

echo "Beginning of remove dir";
define("PATH_TO_MAIN",$_SERVER[DOCUMENT_ROOT]."/example/upload/");
$path = $_SERVER[DOCUMENT_ROOT]."/example/upload";

opendir($path);
$dir = scandir($path);
rmdir_recursive($dir,$path);
function rmdir_recursive($cat,$path,$const){ // рекурсивное удаление каталога upload
define("PATH_TO_MAIN",$_SERVER[DOCUMENT_ROOT]."/example/upload/"); // корень
$array = array_diff($cat,array(".",".."));
foreach($array as $k=>$v){ // проходимся по массиву состоящему из каталогов и файлов
echo "<br>".$path."/".$v;
if(is_file($path."/".$v)){ // если встречается файл
echo "<br> is file".$path."/".$v;
unlink($path."/".$v); // удаляем
$ar = scandir($path);
$ar = array_diff($ar,array(".",".."));
if(count($ar) == 0){
rmdir_recursive($ar,$PATH_TO_MAIN);
}
}

else{
$ar = scandir($path."/".$v);
$ar = array_diff($ar,array(".",".."));
if(count($ar) == 0){
rmdir($path."/".$v); // удаляем каталог если пустой
}
else{
echo "<br> not empty catalog".$v;
opendir($path."/".$v);
$arr = scandir($path."/".$v);
$ar1 = array_diff($arr,array(".",".."));
$path .= "/".$v; // добавляем каталог в общий путь для перехода в непустую директорию
rmdir_recursive($ar1,$path); // вызываем функцию снова если каталог нет пуст
}
}
}
}




Спустя 2 минуты, 23 секунды (18.11.2011 - 00:22) Winston написал(а):
Не пробовал смотреть ?

Спустя 1 минута, 31 секунда (18.11.2011 - 00:23) Aleks-prog написал(а):
Да я хотел бы сам догнать спецом не смотрю, чтобы свою фанкшен сделать, добить так сказать тему

Спустя 24 минуты, 18 секунд (18.11.2011 - 00:48) Игорь_Vasinsky написал(а):
ну это эе велосипед, тебе же показали пример - там 10-15 строк.
Наоборот - посмотрел бы и опыта поднабрался wink.gif

Спустя 8 часов, 32 минуты (18.11.2011 - 09:20) Aleks-prog написал(а):
я думаю полезнее сначала самому написать, в сколько строк бы не вышло laugh.gif

а уж потом посмотреть как бы оптимизировать с оф ресурсов, и сказать "ОХ точно можнго же было так и строк меньше" smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.