php怎么删除目录
更新:2022-11-29 11:55:44
人气:695
来源:互联网转载
A+
php怎么删除目录?这里还是不是想象的那种一个目录直接一个命令就删除了,PHP里的rmdir函数就只能删除空白目录,所以要换一种思路来解决这个问题,就是先删除目录下的子目录及文件,最后删除指定的文件夹目录才行。
PHP函数 rmdir():删除目录
在 PHP 中可以使用 rmdir() 函数来删除指定的目录,该函数的语法格式如下所示:
1 | rmdir (string $dirname [, resource $context ]) |
其中,参数 $dirname 为要删除的目录路径;$context 为可选参数,用来规定文件句柄的环境。
注意:使用 rmdir() 函数删除指定目录时,这个目录必须是空的,而且要有相应的权限。函数执行成功时返回 TRUE,执行失败则返回 FALSE,如果删除一个不为空的目录还会产生一个 E_WERNING 级别的错误。
【示例】使用 rmdir() 函数删除指定的目录。
1 2 3 4 5 6 7 8 | <?php $dir = './test' ; if ( is_dir ( $dir )){ if ( rmdir ( $dir )) echo '目录删除成功!' ; } else { echo "目录不存在!" ; } ?> |
运行上面的代码,首先要确定 test 目录是空的,否则就会出现下面的错误:
1 | Warning: rmdir (./test): Directory not empty in D:\WWW\index.php on line 4 |
如果要删除一个不为空的目录该怎么做呢?我们可以遍历这个目录下的所有文件和文件夹,并用递归的方式来逐个删除这个目录下的所有文件和文件夹,下面就通过示例代码来演示以下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?php function deldir( $path ){ //如果是目录则继续 if ( is_dir ( $path )){ //扫描一个文件夹内的所有文件夹和文件并返回数组 $p = scandir( $path ); //如果 $p 中有两个以上的元素则说明当前 $path 不为空 if ( count ( $p )>2){ foreach ( $p as $val ){ //排除目录中的.和.. if ( $val != "." && $val != ".." ){ //如果是目录则递归子目录,继续操作 if ( is_dir ( $path . $val )){ //子目录中操作删除文件夹和文件 deldir( $path . $val . '/' ); } else { //如果是文件直接删除 unlink( $path . $val ); } } } } } //删除目录 return rmdir ( $path ); } //设置需要删除的文件夹,目录以/结尾 $path = "test/" ; //调用函数,传入路径 deldir( $path ); ?> |
转载请注明:php怎么删除目录 | 李雷博客 - PHP博客
推荐的文章
随手记
- ● 统信UOS系统如何设置指定时间自动重启系统的方法
- ● 自制(IP或域名)可信任的SSL证书,适用360、chrome等浏览器
- ● windows系统下php无法使用curl怎么办?
- ● 绿联UGREENKVM切换器(分屏器)快捷键丢失解决办法
- ● 统信UOS开机指定网址全屏启动自带浏览器以及屏蔽ALT+F4关闭
- ● xshellSSH连接Linux服务器防止超时退出
- ● php8开启OpenSSL扩展库报错disabledinstallext
- ● 统信系统linux安装php时的报错libxml-2.0>=2.7.6
- ● tidb关闭sql_mode=ONLY_FULL_GROUP_BY模式
- ● windows10如何开机自动运行bat文件
PHP经验分享
- ● PHP批量对TCP服务端指定多个IP非阻塞检查在线状态
- ● python实现TCP服务端持续接收关机、重启指令并输出结果【系列三】
- ● PHP给TCP服务端发送指令【系列二】
- ● PHP判断TCP服务端是否在线【系列一】
- ● PHP判断远程文件是否存在
- ● LINUX下用PHP获取CPU型号、内存占用、硬盘占用等信息代码
- ● PHP代码用UDP方式远程唤醒电脑让计算机开机
- ● apache下php生成验证码图片不能显示
- ● PHP使用AES加密解密示例(无偏移)
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题