rmdir仅在以后不使用标头时起作用

时间:2017-07-19 20:13:36

标签: php

if (is_dir($dir)) {
  if ($dh = opendir($dir)) {
    while (($file = readdir($dh)) !== false) {
      if (is_file($dir .'/'. $file))
        unlink($dir .'/'. $file);
    }
  closedir($dh);
  }
}
rmdir($dir);
header('Location: /account/control/sell/step-one/');
exit();

当我在下面放置header()时,删除目录rmdir()将不起作用。我可以注释掉(//)header()和rmdir将完美地工作。

我尝试使用glob和scandir删除文件。关于删除文件和目录的StackOverflow问题有很多答案。我已经尝试过在StackOverflow上找到的几个函数。

如果我不使用header()函数,很多工作只是找到。导致问题的是rmdir / header组合。

1 个答案:

答案 0 :(得分:0)

function delFolder($dir){
   $glob = glob($dir.'/{,.}*',GLOB_BRACE);
   if(!empty($glob)){
      foreach($glob as $val){
         if(basename($val) != '.' && basename($val) != '..'){
            if(is_dir($val)){ 
               delFolder($val);
            };
            if(is_file($val)){
               unlink($val);
            };
         };
      };
   };
   rmdir($dir);
};

delFolder($dir);
header('Location: /account/control/sell/step-one/');
exit();