版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第PHPmkdir创建文件夹实现方法解析在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段手册上的有关mkdir的描述,如下:
说明
boolmkdir(stringpathname[,intmode[,boolrecursive[,resourcecontext]]])
尝试新建一个由pathname指定的目录。
注意也许想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的umask修改,可以用umask()来改变。
注意:mode在Windows下被忽略。自PHP4.2.0起成为可选项。
默认的mode是0777,意味着最大可能的访问权。有关mode的更多信息请阅读chmod()页面。
例1.mkdir()例子
php
mkdir("/path/to/my/dir",0700);
如果成功则返回TRUE,失败则返回FALSE。
例2.mkdir()例子
$dir=iconv("UTF-8","GBK","public/log");
if(!file_exists($dir)){
mkdir($dir,0777,true);
echo'创建文件夹log成功';
}else{
echo'需创建的文件夹log已经存在';
}
iconv方法是为了防止中文乱码,保证可以创建识别中文目录,不用iconv方法格式的话,将无法创建中文目录
mkdir方法的第一个参数是要创建的目录路径,第二个参数是指创建目录的权限,在windows系统下该参数会被忽略,第三个参数是指是否创建多级目录,默认为false
参考链接:/modou/p/5991365.html
注意:自PHP5.0.0rmdir()也可用于某些URL封装协议。参见附录N的列表看看rmdir()支持哪些URL封装协议。
注意:对context的支持是PHP5.0.0添加的。有关context的说明见参考CLX,StreamFunctions。
注意:recursive参数是PHP5.0.0添加的。
注意:当安全模式被激活时,PHP将检查被操作的目录是否和正在执行的脚本有相同的UID(所有者)。
以上是PHP5手册上的描述信息,即你可以这样:mkdir('./test',0777)就能创建一个文件夹了。但是如何递归创建多级目录呢?
其方式有:
1PHP5下创建目录函数mkdir增加了一个新的参数recursive,通过设置recursive为true可以实现递归创建目录的目的,但是对PHP4就不行了。
2自己写一个递归创建多级目录。
这里,我对第二种方式作一点说明,也有两种方式,如下:
第一种(用mkdirs来产生多级父级)
functionmkdirs($dir,$mode=0777)
{
if(is_dir($dir)||@mkdir($dir,$mode))returnTRUE;
if(!mkdirs(dirname($dir),$mode))returnFALSE;
return@mkdir($dir,$mode);
}
说明:
1首先简单说一下mkdir()与mkdirs()的区别,以及,is_dir和dirname():
mkdir()只能在已经存在的目录中创建创建文件夹(即父级必须有才行)。
mkdirs()可以在不存在的目录中创建文件夹。诸如:a//b,既可以创建多级目录。
dirname()是返回路径中的目录部分。
is_dir()用于判断给出的文件名是否是一个有效的目录
2大致流程为:
(1)先用is_dir判断是否已是一个文件夹,如果是则返回TRUE。如没有(或者不是文件夹),则试着创建它,当然有可以父级不存在,那mkdir直接就创不成功,但也为不报错,所以就用@来抑止报非致命错误。
(2)如果传参数都不满足条件,那么就进入第二个if语句,先是取得路径中的目录部分,当然有可能是不存在的多级父级,所以用了mkdirs()来先创建父级,如果成功(不成功返回FALSE),那么再用mkdir来创建最终的目录了。
好了,以上就是第一种方案。
第二种(说明:此方案是相当的精简,那是相当的不错的方案,推荐使用它)
functioncreate_folders($dir){
returnis_dir($dir)or(create_folders(dirname($dir))andmkdir($dir,0777));
}
说明:1大致流程:得到路径后,先判断是否已是一个有效的文件目录,如是则返回,结束程序。如果不是,(由于这里用了OR作先择性的条件,即只要满足其中一个条件就行),则递归再调用自身,并且传入的路径中,少一级目录。这样来先回到上级有的父级目录中,再用mkdir来创建下一级的。
好了,以上就是用PHP来创建文件夹(以及多级文件夹)的方法。_
总结:
1用PHP5中自带的mkdir中的一个新的参数recursive,通过设置recurs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住院医师规范化培训《口腔病理科》练习题库(含参考答案解析)
- 住院医师规范化培训《口腔病理科》练习题库含答案(附解析)
- 山推股份公司深度研究:“挖”出新天地“推”向全世界
- 年产200套游乐设备专用电缆生产项目可行性研究报告
- 粘结NDFEB项目可行性研究报告
- 体育旅游:赛事观光与体验式运动
- 软件定义城市的研究与展望
- 高新技术产业研究与发展趋势
- 绿色建筑设计与城市环境优化策略
- 基于数字孪生的智能家居早期故障预警
- 保安员测试试题库含答案
- 2024年镇江市高等专科学校高职单招职业适应性测试历年参考题库含答案解析
- 食品卫生安全保障、食品配送服务方案
- 机械工程材料课件-
- 【历史】安史之乱与唐朝衰亡课件+2024-2025学年部编版七年级历史下学期
- 一例尿路感染的病例讨论课件
- 220kV主变输变电改扩建工程施工组织设计
- 中国古代技术学习通超星期末考试答案章节答案2024年
- 中职语文职业模块同步练习及复习资料
- 中级电气值班员技能鉴定考试题及答案
- 中考英语688高频词大纲词频表
评论
0/150
提交评论