-4

可能重复:
PHP:删除包含文件的目录?

如果我在以下路径中有一些文件

mysite.com/install

并且我在执行它的路径die.php之外创建了名为“”的文件,它应该删除包含所有文件的文件夹。/install/mysite.com/die.phpinstall

我已将以下代码添加到 die.php

<?PHP rmdir('install');?>

但它只会/install/在文件夹为空时删除!如果它有文件,它会给出Directory not empty错误mysite.com/install

所以任何想法如何做到这一点。

4

2 回答 2

3

如果您正在寻找纯 PHP 解决方案,则必须遍历所有子文件夹(请参阅上面刚刚发布的答案)。要获得仅适用于具有 GNU coreutils(任何主要 Linux 发行版)的平台的更快方法,请使用以下命令:

system('rm -rf '.$dir);

忠告:这可能是不安全的(可能通过管道传输命令) - 一定要清理您的输入。

于 2012-10-28T18:52:43.483 回答
1

这应该工作

<?php
 function rrmdir($dir) {
   if (is_dir($dir)) {
     $objects = scandir($dir);
     foreach ($objects as $object) {
       if ($object != "." && $object != "..") {
         if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
       }
     }
     reset($objects);
     rmdir($dir);
   }
 }
?>

我在 php 网站上找到了它。这似乎是一个普遍的问题。

于 2012-10-28T18:50:16.060 回答