PHP多目录删除
因此,我正在创建一个图像上传网站,我需要同时删除多个目录和文件。我已经成功地创建了完成这项工作的代码,但是我不确定这是否是“好代码”,因为我在重复我自己 有没有更好的方法写下面的内容PHP多目录删除,php,rmdir,Php,Rmdir,因此,我正在创建一个图像上传网站,我需要同时删除多个目录和文件。我已经成功地创建了完成这项工作的代码,但是我不确定这是否是“好代码”,因为我在重复我自己 有没有更好的方法写下面的内容 $dirname = 'uploads/'.$album_id; $dirnamethumb = 'uploads/thumbs/'.$album_id; if (is_dir($dirname)) $dir_handle = opendir($dirname); if (!$dir_handle)
$dirname = 'uploads/'.$album_id;
$dirnamethumb = 'uploads/thumbs/'.$album_id;
if (is_dir($dirname))
$dir_handle = opendir($dirname);
if (!$dir_handle)
return false;
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file))
unlink($dirname."/".$file);
else
delete_directory($dirname.'/'.$file);
}
}
if (is_dir($dirnamethumb))
$dir_handle = opendir($dirnamethumb);
if (!$dir_handle)
return false;
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirnamethumb."/".$file))
unlink($dirnamethumb."/".$file);
else
delete_directory($dirnamethumb.'/'.$file);
}
}
closedir($dir_handle);
rmdir($dirname);
rmdir($dirnamethumb);
return true;
提前感谢您的帮助 试试这个,$dir = '/path/to/some/dir/'; // notice: trailing slash!
if ($handle = opendir($dir)) {
while (false !== ($entry = readdir($handle))) {
if (is_dir($dir . $entry) ) {
rmdir($dir . $entry);
}
}
closedir($handle);
}
?>
为什么不试试这个递归函数呢
这不是只删除一个目录吗?我期待着删除多个目录在同一时间。因此,我重复了代码对不起,我认为我没有很好地解释我自己。请允许我重新表述一下:我希望删除父目录中的某些目录。用户可以选择删除相册,相册将保存在“上载/相册名称”下,相同图片的缩略图将保存在“上载/缩略图/相册名称”下。因此,我只希望删除指定的目录只。在我上面的代码中,我循环并删除一个目录中的所有文件,然后使用不同的文件路径重复完全相同的代码。当看到重复时,使用数据进行循环:
$dirs=array('uploads/'。$album_id,'uploads/thumbs/'。$album_id)
,然后循环使用$dirs
来完成您的工作。。。之后,我不知道删除文件夹的“好方法”。。。有很多功能。。。你的看起来很干净,太棒了!现在只有一半的尺寸了,非常感谢!!!您可能需要检查$file
是否不是
或。
,否则您将有一个无限递归循环。。。
function rrmdir($dir) {
foreach(glob($dir . '/*') as $file) {
if(is_dir($file))
rrmdir($file);
else
unlink($file);
} rmdir($dir);
}