PHP recursive delete function

后端 未结 3 1688
误落风尘
误落风尘 2021-01-19 03:13

I wrote recursive PHP function for folder deletion. I wonder, how do I modify this function to delete all files and folders in webhosting, excluding given array of files and

3条回答
  •  忘掉有多难
    2021-01-19 03:40

    Try something like this:

    $it = new RecursiveIteratorIterator(
      new RecursiveDirectoryIterator('%yourBaseDir%'),
      RecursiveIteratorIterator::CHILD_FIRST
    );
    
    $excludeDirsNames = array();
    $excludeFileNames = array('.htaccess');
    
    foreach($it as $entry) {
      if ($entry->isDir()) {
        if (!in_array($entry->getBasename(), $excludeDirsNames)) {
          try {
            rmdir($entry->getPathname());
          }
          catch (Exception $ex) {
            // dir not empty
          }
        }
      }
      elseif (!in_array($entry->getFileName(), $excludeFileNames)) {
        unlink($entry->getPathname());
      }
    }
    

提交回复
热议问题