如果我在以下路径中有一些文件
mysite.com/install
并且我在die.php
之外创建了名为“/install/
”的文件,其中路径mysite.com/die.php
执行后,它应删除install
文件夹及其所有文件内部。
我已经向die.php添加了以下代码
<?PHP rmdir('install');?>
但它只删除/install/
文件夹时为空!如果它有文件,则会在Directory not empty
mysite.com/install
所以不知道怎么做。
答案 0 :(得分:3)
如果您正在寻找纯PHP解决方案,则必须遍历所有子文件夹(请参阅上面发布的答案)。对于只能在具有GNU coreutils(任何主要Linux发行版)的平台上运行的更快的approch,请使用:
system('rm -rf '.$dir);
建议:这可能不安全(可能管道命令) - 请务必清理您的输入。
答案 1 :(得分: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网站上找到了它。这似乎是一个普遍的问题。