How to recursively delete a directory and its entire content in PHP

2 Answers

0 votes
function delete_directory($dir) 
{
  $files = array_diff(scandir($dir), array('.', '..'));
  foreach ($files as $file) {
    (is_dir("$dir/$file")) ? delete_directory("$dir/$file") : unlink("$dir/$file");
  }
  return rmdir($dir);
}
$dir = "d:\\test";
delete_directory($dir);

echo "delete ok.";
 
/*
run:

delete ok.

*/

 



answered Oct 13, 2016 by avibootz
0 votes
$dir = "d:\\test";
  
$files = new RecursiveIteratorIterator(
         new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
             RecursiveIteratorIterator::CHILD_FIRST
);

foreach ($files as $fileinfo) 
{
    $del = ($fileinfo->isDir() ? 'rmdir' : 'unlink');
    $del($fileinfo->getRealPath());
}

rmdir($dir);

echo "delete ok.";
 
/*
run:

delete ok.

*/

 



answered Oct 13, 2016 by avibootz

Related questions

...