php创建和删除目录函数介绍和递归删除目录函数分享


Posted in PHP onNovember 18, 2014

mkdir() — 新建目录

? 语法:bool mkdir (string pathname [,int mode])

? 尝试新建一个由 pathname 指定的目录。

rmdir() — 删除目录
? 语法:bool rmdir ( string dirname )

? 尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。如果成功则返回 TRUE,失败则返回

FALSE。

unlink — 删除文件
? 语法:bool unlink ( string filename )

? 删除 filename。和 Unix C 的 unlink() 函数相似。如果成功则返回 TRUE,失败则返回 FALSE。

在PHP中,使用mkdir()函数只需要传入一个目录名即可很容易地建立一个新目录。但删除目录所使用的函数rmdir(),只能删除一个空目录并且目录必须存在。如果是非空的目录就需要先进入到目录中,使用unlink()函数将目录中的每个文件都删除掉,再回来将这个空目录删除。如果目录中还存在目录,而且子目录也非空,就要使用递归的方法了。自定义递归函数删除目录的程序代码如下所示:

<?php

//自定义函数递归的删除整个目录

function delDir($directory){

    if(file_exists($directory)){      //如果不存在rmdir()函数会出错

        if($dir_handle = @opendir($directory)){       //打开目录,并判断是否能成功打开

            while($filename = readdir($dir_handle)){       //循环遍历目录下的所有文件

               if($filename != "."&& $filename != ".."){       //一定要排除两个特殊的目录

                   $subFile = $directory."/".$filename;       //将目录下的子文件和当前目录相连

                   if(is_dir($subFile))        //如果为目录则条件成立

                   delDir($subFile);       //递归地调用自身函数,删除子目录

                   if(is_file($subFile))      //如果是文件则条件成立

                   unlink($subFile);           //直接删除这个文件

               }

            }

            closedir($dir_handle); //关闭文件资源

            rmdir($directory); //删除空目录

         }

      }

}

 

dirDir("phpMyAdmin"); //调用delDir()函数,将程序所在目录中的“phpMyAdmin”文件删除

?>

当然也可以通过调用操作系统命令“rm-rf”删除非空的目录,但也要从安全和跨平台方面考虑尽量不要去使用。

PHP 相关文章推荐
如何对PHP程序中的常见漏洞进行攻击
Oct 09 PHP
同一空间绑定多个域名而实现访问不同页面的PHP代码
Dec 06 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
php 修改上传文件大小限制实例详解
Oct 23 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
Laravel的加密解密与哈希实例讲解
Mar 24 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 #PHP
PHP打开和关闭文件操作函数总结
Nov 18 #PHP
PHP文件读写操作相关函数总结
Nov 18 #PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 #PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 #PHP
PHP文件锁函数flock()详细介绍
Nov 18 #PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 #PHP
You might like
用PHP读注册表
2006/10/09 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
wxpython 学习笔记 第一天
2009/03/16 Python
python中enumerate的用法实例解析
2014/08/18 Python
Python分析学校四六级过关情况
2017/11/22 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
Python的形参和实参使用方式
2019/12/24 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
终止劳动合同协议书
2014/04/14 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
春节随笔
2015/08/15 职场文书
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android