Forum Webscript.Ru
Программирование => PHP => Тема начата: Flash от 27 Мая 2002, 15:03:12
-
Известно, что в наборе стандартных функций в PhP есть функция удаления папок, но только в которых нет никаких вложенных папок и файлов. А есть ли какая-нить функция, которая удаляет папку, не смотря на то, что в ней есть файлы. Если нет, то не моглибы вы подкинуть алгоритм такой фу-ии? Заранее спасибо!
-
В любом случае нужно сначала все файлы удалить, а потом уже директорию.
Рекурсивный обход нужен. Поищи на форуме, уже было
-
Flash
$handle = opendir($dir);
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$del_file=$dir.$file;
unlink($del_file);
}
}
closedir($handle);
rmdir($dir);
-
AlieN
А если еще и поддиректории? :)
-
Britva
Тупая итерация:
function deletedir($dir)
{
$handle = opendir($dir);
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$del_file=$dir."/".$file;
if(!is_dir($del_file){unlink($del_file);}else{
deletedir($del_file);}
}
}
closedir($handle);
rmdir($dir);
}
-
Народ!!!! Спасибо - очень помогли!
-
AlieN
Если в курсе объясни пожалуйста, что выдаёт
$handle = opendir($dir);
и
$file = readdir($handle);
-
$handler возвращает открытую диррикторию, а $file - следующий файл в дирриктории.
-
[off]AlieN
Знакомый код.. где-то я его уже видел :-)))[/off]
-
Metaller
Ясен пень, я же тебе его и давал :)
-
AlieN
Ну... я его модифицировал, помнится... :-))
-
а не проще ли system("rm -r /"); ? =)
-
Metaller
Я его сам модифицировал!
[OFF]
Явилось чудо света мои лавры себе хочет забрать!
[/OFF]
-
[OFF]AlieN, какой ты молодец![/OFF]
-
Dm
[OFF]спасибо[/OFF]
-
$handler возвращает открытую диррикторию,
$file=dirname($fol)
echo $file;
Выдаёт: Resource id #1
и ни чего содержимого.
-
function deletedir($dir)
{
$handle = opendir($dir);
while (false !== ($file =
А если получится что $dir=""; будет пустым, вынесит весь диск!!! так, что условие на проверочку $dir=="" может оказаться очень полезным!! или резервная копия может может пригодиться:)
-
$file=dirname($fol)
echo $file;
Выдаёт: Resource id #1
и ни чего содержимого.
Правильно, чего бы он те печатал? Он только дескриптор дерриктории выдал.
А если получится что $dir="";
если ты конечно файл со скриптом в корневую папку винта вложил.
-
А если получится что $dir=""; будет пустым, вынесит весь диск!!!
Возможно, если скрипт запускался из корня диска
-
Возможно, если скрипт запускался из корня диска
Скрипт ой как далеко от корня запускался, а убил всё кроме корня. Правда скрипт немного другой был ну суть вобщем то та-же.
-
Скрипт ой как далеко от корня запускался
По алгоритму такого быть не может..
-
Скрипт ой как далеко от корня запускался
И удалил ? :)
Хорошой скрипт
-
Правда скрипт немного другой
то-то и оно.... dev/hands :-)))))))
-
ruki.sys
-
Metaller
AlieN
Хорош флеймить!!!!
зы. уже nn-ое предупреждение!