PHP:删除文件夹的最简单方法(包括其内容)

Chr*_*s B 32 php file-io delete-directory

rmdir()如果文件夹包含任何文件,则该函数将失败.我可以循环遍历目录中的所有文件,如下所示:

foreach (scandir($dir) as $item) {
    if ($item == '.' || $item == '..') continue;
    unlink($dir.DIRECTORY_SEPARATOR.$item);
}
rmdir($dir);
Run Code Online (Sandbox Code Playgroud)

有没有办法一次性删除它?

小智 61

rrmdir() - 递归删除目录:

function rrmdir($dir) { 
  foreach(glob($dir . '/*') as $file) { 
    if(is_dir($file)) rrmdir($file); else unlink($file); 
  } rmdir($dir); 
}
Run Code Online (Sandbox Code Playgroud)

  • 我曾经使用这样的功能删除我的整个项目,小心! (10认同)
  • @silversunhunter实际上,我没有.当`unlink`删除某些内容时,就意味着它.好东西,它只是一个测试项目.每日课程:使用远程VCS (3认同)
  • @gskema,你的评论让我笑了!!! 我只能想象"ohhhh shhiiiiittttt"时刻.我希望你能把它全部拿回来! (2认同)

cha*_*aos 47

好吧,总有

system('/bin/rm -rf ' . escapeshellarg($dir));
Run Code Online (Sandbox Code Playgroud)

在哪里可用.

  • 但这不适用于Windows服务器. (9认同)
  • @KashifRaza:对.因此"在可用的地方". (4认同)