在PHP中,我们可以使用rmdir
函数来删除一个目录,但是该函数只能用于删除空目录。如果想要删除非空目录,我们需要使用rrmdir
函数。
rrmdir
函数可以采用递归方式删除目录及其下所有文件。它实际上是一个回调函数,我们可以在函数内部递归删除目录中的所有文件和子目录,直到整个目录结构被删除为止。下面是一个示例代码:
function rrmdir($path) {
if (is_dir($path)) {
$files = glob($path . '/*');
foreach ($files as $file) {
is_dir($file) ? rrmdir($file) : unlink($file);
}
rmdir($path);
return true;
}
return false;
}
该函数接收一个参数 $path
,表示欲删除的目录路径。首先,检查 $path
是否为目录。如果是目录,则遍历其中的子目录和文件,并分别进行删除(如果是目录则递归调用 rrmdir
函数进行删除;如果是文件则使用 unlink
函数删除文件)。最后使用 rmdir
函数删除目录本身。
下面是两个示例:
- 删除目录
/data/temp/
:
rrmdir('/data/temp/');
- 删除目录
/data/uploads/
:
rrmdir('/data/uploads/');
需要注意的是,rrmdir
函数是递归删除目录及其下所有文件的操作,因此请谨慎使用,以免不小心删除重要数据造成损失。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:rrmdir php中递归删除目录及目录下的文件 - Python技术站