PHP删除文件夹
原创若是删除空文件夹使用rmdir()函数即可,但是若文件夹不为空则无法直接删除
需用到递归函数
/**
* 删除目录
* @param string $path
* @return bool
*/
function delDir(string $path): bool
{
if (!is_dir($path)) {
return false;
}
$content = scandir($path);
foreach ($content as $v) {
if (. == $v || .. == $v) {
continue;
}
$item = $path . / . $v;
if (is_file($item)) {
unlink($item);
continue;
}
delDir($item);
}
return rmdir($path);
}
如果文件夹下的文件或子文件夹非常多, $content = scandir($path)
全部取出可能会导致内存溢出
可采用下面的方法,不一次性全部取出,而是依次取出
/**
* 删除目录
* @param string $path
* @return bool
*/
function delDir(string $path): bool
{
if (!is_dir($path)) {
return false;
}
$open = opendir($path);
if (!$open) {
return false;
}
while (($v = readdir($open)) !== false) {
if (. == $v || .. == $v) {
continue;
}
$item = $path . / . $v;
if (is_file($item)) {
unlink($item);
continue;
}
delDir($item);
}
closedir($open);
return rmdir($path);
}
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:PHP生成器的使用yield性能优化 下一篇:MySQL的四种事务隔离级别