php删除目录需要用到的函数是rmdir,rmdir是一个删除指定目录的函数,是一种常用函数,本篇文章我们就来看一下rmdir函数的具体用法。
我们先来看一下rmdir函数的基本语法
将目录名称(目录的路径)作为参数传递。rmdir(目录名称);
如果由于没有指定目录而无法删除目录,请注意将发生e_warning级别错误。
此外,如果在rmdir中指定的目录内存在文件或其他目录,则在rmdir中无法删除指定的目录。
执行此操作时,必须清空指定的目录一次,然后使用rmdir再次删除该目录。
如何使用rmdir函数?
我们来看具体的示例mkdir('sample');
if (is_dir('sample')) {
$files = array_diff(scandir('sample'), array('.','..'));
if (empty($files)) {
echo "删除目录:sample\n";
rmdir('sample');
}
}
在示例程序中,首先使用mkdir函数创建示例目录。
在实际执行rmdir函数之前,必须检查“指定目录的存在”“指定的目录是否为空”。
如果不这样做,可能会在执行rmdir函数时导致错误。
删除非空目录
如果在rmdir中指定的目录内存在文件或其他目录,则在rmdir中无法删除指定的目录。
因此,如果要删除非空目录,则必须删除指定目录中的所有其他目录和文件,然后使用rmdir函数再次删除它们。
我们来看具体示例//
function remove_directory($dir) {
$files = array_diff(scandir($dir), array('.','..'));
foreach ($files as $file) {
//
if (is_dir("$dir/$file")) {
//
remove_directory("$dir/$file");
} else {
//
unlink("$dir/$file");
echo "目录:" . $dir . "/" . $file . "删除\n";
}
}
//
echo "目录:" . $dir . "删除\n";
return rmdir($dir);
}
//
//
mkdir('test1');
mkdir('test1/test2');
touch('test1/test2/test3');
//
//
remove_directory('test1');
在示例程序中,我们首先定义一个名为remove_directory的函数。
此remove_directory函数检查指定目录的内容,如果没有内容则删除指定的目录,如果有内容则根据内容更改处理。
在第三行中,您将获得指定目录中的文件组(另一个目录和文件),对于第4行到第14行中的每个文件组,使用unlink函数删除文件如果是目录,请再次调用remove_directory函数。
最后,在第17行,删除使用rmdir函数变为空的指定目录。
在第20-23行创建非空目录。
第26行使用remove_directory函数删除非空的目录。