2016-08-08 3 views
1

У меня есть вопрос о небольшом фрагменте кода ниже. На данный момент я использую первый фрагмент кода, и он работает отлично. Но не лучший ли второй код для удаления папки и файлов в ней? Моя переменная $target - это каждый раз, когда путь к папке hwo нужно удалить.Удалить папку и файлы в PHP

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() вызывает себя.

+0

ha спасибо, мой друг, это был короткий и ясный ответ для меня :) , поэтому я могу использовать свой короткий код, потому что никогда не будет подкаталогов. –

 Смежные вопросы

  • Нет связанных вопросов^_^