最新公告
  • 欢迎您访问爱上源码网,分享精品整站源码,网站模板,游戏源码,APP小程序源码以及视频教程免费下载;服务永无止境!立即加入我们
  • php中mkdir的使用方法介绍

    爱上源码网文章php中mkdir的使用方法介绍的内容插图

    PHPmkdir如何创建多级目录

    首先,我们来说明一下可能很多朋友认为只要给一个路径,mkdir就可以创建文件夹,其实并不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?

    手册上的有关mkdir的描述,如下:

    说明

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

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

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

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

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

    (免费学习视频教程推荐:php视频教程)

    例 1. mkdir() 例子

    <?php
    mkdir("/path/to/my/dir", 0700);
    ?>

    如果成功则返回 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)就能创建一个文件夹了。但是如何递归创建多级目录呢?

    其方式有:

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

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

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

    第一种(用mkdirs来产生多级父级)

    function mkdirs($dir, $mode = 0777)
    {    
    if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;    
    if (!mkdirs(dirname($dir), $mode)) return FALSE;    
    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来创建最终的目录了。
    好了,以上就是第一种方案。

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

    function create_folders($dir){
           return is_dir($dir) or (create_folders(dirname($dir)) and mkdir($dir, 0777));
     }

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

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

    总结:

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

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

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

    相关文章教程推荐:php教程

    以上就是php中mkdir的使用方法介绍的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:php mkdir
  • 本文转载于:博客园,如有侵犯,请联系916990011@qq.com删除
    • 上一篇:php中array_replace、array_splice与str_replace函数的比较
    • 下一篇:php如何构造随机ip访问

    相关文章

    相关视频

    • 关于php多进程编程(代码详解)
    • PHP是如何做垃圾回收的(图文)
    • PHP通过设置系统环境变量来区分测试与正式环境
    • 用PHP写一个计算器(附完整代码)
    • php中mkdir的使用方法介绍

      本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn!
      本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~

      重要声明:
      1.本站视频教程,软件及网站源码版权均属于原作者所有,您必须在下载后的24个小时之内,从您的电脑中删除!非法商业用途,后果自负!
      2.本站不保证所提供下载资源的安全性和完整性,仅供下载学习之用!如链接失效或资源含外站广告,请联系客服处理!给予奖励!
      3.本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!本站提供有偿服务!如有侵权请联系在线客服!
      4.如您手中有优质资源或教程,可以自助投稿发布,成功分享后有奖励和额外收入!
      5.如您需要正版微擎模块可联系本站客服,我们有价值30w+商业微擎应用出售微擎坑位和招收代理!
      6.400电话/软著/ICP,EDI许可证/商标特价办理中!
      爱上源码下载网 » php中mkdir的使用方法介绍

      常见问题FAQ

      从网站下载的源码都有安装教程么?不会安装怎么办?
      本站发布的网站源码和模板资源大部分在压缩包内都有教程,如您不会安装可以联系本站在线技术进行付费安装。
      爱上源码的所有源码都是亲测能正常运行的么?
      本站目前拥有资源10w+,包含整站源码,网站模板,游戏源码,小程序源码,视频教程,破解软件等,每天也在测试更新;因时间和精力有限我们无法对资源进行一一测试,只能保证所分享资源内容无误,希望理解。
      我手中的优质资源可以在你这换钱或者VIP么?
      爱上源码支持投稿,欢迎发布您手中的优质资源进行售卖;本站VIP支持免费获取,目前邀请10人注册爱上源码即可免费获取VIP。
      爱上源码除了资源分享还有其他业务没?
      【价值30W+微擎模块出售正版商业微擎坑位及招收代理,详情咨询本站客服!】我们团队目前运营并推广几套商业化saas智能小程序系统能满足大部分小程序开发需求,并由SaaS和独立部署版商城小程序系统;另外销售400电话,各种ICP/EDI资质证书办理,软著和商标注册服务等。

      发表评论

      • 32会员总数(位)
      • 35644资源总数(个)
      • 0本周发布(个)
      • 0 今日发布(个)
      • 666稳定运行(天)

      提供最优质的资源集合

      开通VIP 源码下载