基础讲解 PHP创建文件夹_PHP教程

php中文网
发布: 2016-07-15 13:34:11
原创
1476人浏览过

创客贴设计
创客贴设计

创客贴设计,一款智能在线设计工具,设计不求人,AI助你零基础完成专业设计!

创客贴设计 51
查看详情 创客贴设计

在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段手册上的有关mkdir的描述,如下:

说明
bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

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

立即学习PHP免费学习笔记(深入)”;

注意也许想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的 umask 修改,可以用 umask() 来改变。

注意: mode 在 Windows 下被忽略。自 PHP 4.2.0 起成为可选项。
 

默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。 例 1. mkdir() 例子

<ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span> ?php  </span></span></li><li><span>mkdir("/path/<br />to/my/dir", 0700);  </span></li><li class="alt"><span class="tag">?></span><span>  </span></li></ol>
登录后复制

如果成功则返回 TRUE,失败则返回 FALSE。

注意: 自 PHP 5.0.0 rmdir() 也可用于某些 URL 封装协议。参见附录 N 的列表看看 rmdir() 支持哪些 URL 封装协议。
注意: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见参考 CLX, Stream Functions。
注意: recursive 参数是 PHP 5.0.0 添加的。
注意: 当安全模式被激活时,PHP 将检查被操作的目录是否和正在执行的脚本有相同的 UID(所有者)。

以上是PHP5手册上的描述信息,即你可以这样:mkdir('./test',0777)就能创建一个文件夹了。但是如何递归创建多级目录呢?

PHP创建文件夹方式有:

1 PHP5 下创建目录函数 mkdir 增加了一个新的参数 recursive ,通过设置 recursive 为 true 可以实现递归创建目录的目的,但是对PHP4就不行了。

2 自己写一个递归创建多级目录。

这里,我对第二种方式作一点说明,也有两种方式,如下:

第一种PHP创建文件夹(用mkdirs来产生多级父级)

<ol class="dp-xml"><li class="alt"><span><span>function mkdirs($dir, $</span><span class="attribute">mode</span><span> = </span><span class="attribute-value">0777</span><span>)  </span></span></li><li><span>{  </span></li><li class="alt"><span>if (is_dir($dir) || <br />@mkdir($dir, $mode)) <br />return TRUE;  </span></li><li><span>if (!mkdirs(dirname<br />($dir), $mode)) return FALSE;  </span></li><li class="alt"><span>return @mkdir($dir, $mode);  </span></li><li><span>} </span></li></ol>
登录后复制

说明: 1 首先 简单说一下mkdir()与mkdirs()的区别,以及,is_dir和dirname():

mkdir()
只能在已经存在的目录中创建创建文件夹(即父级必须有才行)。
mkdirs()
可以在不存在的目录中创建文件夹。诸如:a\b,既可以创建多级目录。

dirname()是返回路径中的目录部分。

is_dir()用于判断给出的文件名是否是一个有效的目录

2 大致流程为:(1)先用is_dir判断是否已是一个文件夹,如果是则返回TRUE。如没有(或者不是文件夹),则试着创建它,当然有可以父级不存在,那mkdir直接就创不成功,但也为不报错,所以就用@来抑止报非致命错误。

(2)如果传参数都不满足条件,那么就进入第二个if语句,先是取得路径中的目录部分,当然有可能是不存在的多级父级,所以用了mkdirs()来先创建父级,如果成功(不成功返回FALSE),那么再用mkdir来创建最终的目录了。

好了,以上就是第一种方案。

第二种PHP创建文件夹

(说明:此方案是相当的精简,那是相当的不错的方案,推荐使用它)

<ol class="dp-xml"><li class="alt"><span><span>function create_folders($dir){  </span></span></li><li><span>return is_dir($dir) or (<br />create_folders(dirname($dir)) <br />and mkdir($dir, 0777));  </span></li><li class="alt"><span>}  </span></li></ol>
登录后复制

说明:

1 大致流程:得到路径后,先判断是否已是一个有效的文件目录,如是则返回,结束程序。如果不是,(由于这里用了OR作先择性的条件,即只要满足其中一个条件就行),则递归再调用自身,并且传入的路径中,少一级目录。这样来先回到上级有的父级目录中,再用mkdir来创建下一级的。

好了,以上就是用PHP来创建文件夹(以及多级文件夹)的方法。^_^

PHP创建文件夹总结:

1 用PHP5中自带的mkdir 中的一个新的参数 recursive ,通过设置 recursive 为 true 可以实现递归创建目录的目的,但是对PHP4就不行了。

2 自己写的方法中,用mkdirs来创建多级父级目录方式

3 仍然用mkdir很巧妙的来创建,


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446011.htmlTechArticle在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级...
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号