php 删除指定文件夹的实例讲解
发布时间 - 2026-01-11 02:29:52 点击率:次1、前言

目标:php删除一个指定目录
所使用的的php函数:is_dir,opendir,readdir,scandir,rmdir,closedir,等等(注:其他文件操作函数也可以完成,这里只列举了本次使用的函数)
2、相关函数介绍
php文件操作的方法大致相同,已经在上一篇介绍过了,这里就不在重复介绍,这里就介绍一个新函数
rmdir
详情参考:http://www.w3school.com.cn/php/func_filesystem_rmdir.asp
3、代码构成
**
* [delAllFile description] 删除指定目录
* @param [type] $dirName [description] 目录
* @param [type] $file [description] 记录的过程文件
* @param integer $type [description] 第一次默认打开新文件,第二次调用不打开
* @return [type] [description]
*/
public function delAllFile($dirName, $file, $type = 1) {
$re = $this->checkDir($dirName);
//默认第一次打开文件
if($type){
$file = fopen($file, 'w');//打开日志文件
}
if($re){
$this->delFile($dirName, $file);
}else{
fwrite($file,"{$dirName}清理完成\r\n");
}
}
/**
* [checkDir description] 检测文件夹是否为空,为空直接删除
* @param [type] $dirName [description] 文件夹名
* @return [type] [description]
*/
private function checkDir($dirName) {
$a = scandir($dirName);//列出 images 目录中的文件和目录:
//只包含.和..目录的文件夹为空文件夹
if(sizeof($a) == 2){
rmdir($dirName);
return false;
}
return true;
}
/**
* [delFile description] 上传文件的方法
* @param [type] $dirName [description] 目录
* @param [type] $file [description] 记录的文件
* @return [type] [description]
*/
private function delFile($dirName, $file) {
$dh = openDir($dirName);
while($handle = readdir($dh)){
if($handle == '.' || $handle == '..') {
continue;
}
$resource = $dirName.'/'.$handle;
//判断是否是文件夹
if(is_dir($resource)) {
//判断文件夹是否为空
$re = $this->checkDir($dirName);
if($re){
$this->delAllFile($resource, $file, 0);
}else{
fwrite($file,"{$resource}清理完成\r\n");
continue;
}
}else{
unlink($resource);
}
}
//关掉资源,删除目录
closedir($dh);//关闭目录资源
fwrite($file,"{$dirName}清理完成\r\n");
rmdir($dirName);//删除空目录
}
然而,上面的代码遇到子目录层级高的时候,就容易出现一个警告,导致目录无法删除
故对于层级高的子集,需要在最后加上一个循环判断,来判断是否可以删除,来避免这个错误
// //关掉资源,删除目录
// closedir($dh);//关闭目录资源
// fwrite($file,"{$dirName}清理完成\r\n");
//rmdir($dirName);//删除空目录
//每次目录层级高了就报错,故加个循环处理
$i = 1;
while($i){
$re = $this->checkDir($dirName);
echo "$dirName $i 次<br/><hr/>";
$i++;
if(!$re){
$i = 0;
closedir($dh);//关闭目录资源
fwrite($file,"{$dirName}清理完成\r\n");
}
}
加上这层可以避免无法删除的情况(有时候删不掉是权限的问题)
4、结语
删除一个目录相对比较简单,基本步骤为:
1、判断是否是目录,是目录则递归调用自己,否则直接删除文件;
2、判断目录是否为空,不为空 rmdir会抛出错误;
3、文件权限的问题(window,这个不是什么问题)
以上这篇php 删除指定文件夹的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# php
# 删除文件夹
# PHP实现批量清空删除指定文件夹所有内容的方法
# php递归删除指定文件夹的方法小结
# php清空(删除)指定目录下的文件
# 不删除目录文件夹的实现代码
# PHP删除指定目录中的所有目录及文件的方法
# 为空
# 判断是否
# 给大家
# 递归
# 过了
# 希望能
# 这篇
# 报错
# 在上
# 高了
# 什么问题
# 抛出
# 小编
# 大家多多
# 举了
# 这层
# 上传文件
# 新文件
# 删不掉
# 目录中
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
北京专业网站制作设计师招聘,北京白云观官方网站?
如何快速搭建高效香港服务器网站?
如何快速使用云服务器搭建个人网站?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
,在苏州找工作,上哪个网站比较好?
黑客入侵网站服务器的常见手法有哪些?
历史网站制作软件,华为如何找回被删除的网站?
如何用IIS7快速搭建并优化网站站点?
如何安全更换建站之星模板并保留数据?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
网站页面设计需要考虑到这些问题
JavaScript如何实现音频处理_Web Audio API如何工作?
jquery插件bootstrapValidator表单验证详解
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Bootstrap CSS布局之列表
如何用VPS主机快速搭建个人网站?
如何在搬瓦工VPS快速搭建网站?
Laravel中的Facade(门面)到底是什么原理
魔方云NAT建站如何实现端口转发?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
如何在云主机快速搭建网站站点?
Laravel如何使用Blade模板引擎?(完整语法和示例)
Python结构化数据采集_字段抽取解析【教程】
,交易猫的商品怎么发布到网站上去?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
如何在阿里云部署织梦网站?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
在Oracle关闭情况下如何修改spfile的参数
做企业网站制作流程,企业网站制作基本流程有哪些?
浅谈redis在项目中的应用
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
黑客如何利用漏洞与弱口令入侵网站服务器?
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
JavaScript如何操作视频_媒体API怎么控制播放
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
如何在宝塔面板中创建新站点?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
如何快速重置建站主机并恢复默认配置?

