我想删除一些目录,并将它们的名称存储在一个名为folders的数组中。
foreach ($folders as $f){
rmdir($dir);
$dir=rtrim($dir,"/");
$dir=rtrim($dir,$f);
}
例如:
dir: /cdf5/gfft/
and folders: gftt,cdf5
我看到有时rtrim函数剪切了4个以上的字符,而dir中剩下的路径是:/cdf
。
怎么了?
此函数删除中包含文件的目录
function deldirectory($dir){
$tfile = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($tfile,
RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
if ($file->isDir()){
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
return rmdir($dir);
}
然后你可以调用这个函数
foreach ($folders as $f){
deldirectory($f);
}