2014-02-03 7 views
0

Как удалить папку, содержащую ее содержимое, с помощью PHP? Я знаю, что я бы использовал какую-то форму цикла, но не знаю, какой тип или какой подход мне придется принять. Я использую следующие для удаления файлов и хотите включить его там:Как удалить все файлы в папке с папкой на PHP?

if(isset($_REQUEST['DelFile'])) { 
    $DeleteFile = $_REQUEST['DelFile']; 
    if(file_exists($directory.$DeleteFile)) { 
     @unlink($directory.$DeleteFile); 
     rmdir($directory.$DeleteFile); 
     $files = glob($directory . $file); // get all file names 

     foreach($files as $file){ // iterate files 
      if(is_file($file)) 
      unlink($file); // delete file 
     } 
     @header("location:interface.php?msg=1"); 

    } else @header("location:interface.php?msg=2"); 
} 
+0

Какой файл/файлы вы пытаетесь удалить? В вашем примере вы удаляете '$ directory. $ DeleteFile', а также каждый файл в' $ directory'? Что такое '$ directory'? – Whymarrh

+0

Кроме того, вас могут заинтересовать [пользовательские заметки для 'rmdir'] (http://ca1.php.net/rmdir#usernotes). – Whymarrh

ответ

1

Вы можете попробовать этот код, чтобы получить все файлы в папке, то разъединить все файлы с помощью цикла

$files = glob('uploads/*'); // get all file names 
foreach($files as $file){ // iterate files 
    if(is_file($file)) 
    unlink($file); // delete file 
} 
1

Почему не просто запустить rm -rf $directory?

system("rm -rf $directory"); 
+0

Будет ли эта работа над XAMPP или я должен загрузить ее на сервер. Я просто прошу об этом для тестирования. – HeyItsProdigy

+0

загружать на сервер, но вы должны убедиться, что удаление разрешено только * разрешено * для определенного каталога, вы должны блокировать 'rm -rf /', в любом случае, использовать его очень очень * тщательно * – ajreal

+0

Я просто попробовал, и, похоже, – HeyItsProdigy

0

Все, что мне было нужно, это установить цикл, который удалит файлы. После цикла я удаляю каталоги.

if(isset($_REQUEST['DelFile_folder'])) { 
         $DeleteFile = $_REQUEST['DelFile_folder']; 
         if(file_exists($directory.$DeleteFile)) { 
          @unlink($directory.$DeleteFile.'/index.php'); 
          rmdir($directory.$DeleteFile . '/uploads/' . $_SESSION['user']); 
          rmdir($directory.$DeleteFile . '/uploads'); 
          rmdir($directory.$DeleteFile); 
          $dir = 'uploads/' . $_SESSION['user'] . '/' . $DeleteFile . '/uploads/'; 
          $dirHandle = opendir($dir); 
          while ($file = readdir($dirHandle)) { 
           if(!is_dir($file)) { 
            unlink ("$dir"."$file"); 
           } 
          } 
          closedir($dirHandle); 

          @header("location:interface.php?msg=1"); 
         } else @header("location:interface.php?msg=2"); 
        } 
Смежные вопросы