У меня есть вопрос о небольшом фрагменте кода ниже.
На данный момент я использую первый фрагмент кода, и он работает отлично.
Но не будет ли второй код лучшим способом удалить папку и файлы в ней?
Моя переменная $target
каждый раз путь к папке, которую нужно удалить.
function deleteFilesAndDirectory($target)
{
if(is_dir($target))
{
$files = glob($target . '*', GLOB_MARK);
foreach($files as $file)
{
deleteFilesAndDirectory($file);
}
rmdir($target);
}
elseif(is_file($target))
{
unlink($target);
}
}
Почему этот код не должен использоваться?
function deleteFilesAndDirectory($target)
{
$files = glob($target . '*', GLOB_MARK);
foreach($files as $file)
{
unlink($file);
}
rmdir($target);
}
Второй будет работать нормально, пока каталог, который нужно удалить, не содержит никаких подкаталогов. Для очистки подкаталогов лучше всего использовать рекурсивную функцию, поэтому в первом примере кода функция deleteFilesAndDirectory()
называет себя.
Других решений пока нет …