unlink — удалить папку и файлы в переполнении стека

У меня есть вопрос о небольшом фрагменте кода ниже.
На данный момент я использую первый фрагмент кода, и он работает отлично.
Но не будет ли второй код лучшим способом удалить папку и файлы в ней?
Моя переменная $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);
}

1

Решение

Второй будет работать нормально, пока каталог, который нужно удалить, не содержит никаких подкаталогов. Для очистки подкаталогов лучше всего использовать рекурсивную функцию, поэтому в первом примере кода функция deleteFilesAndDirectory() называет себя.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]