php中mkdir的使用方法介绍-php教程

资源魔 21 0

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)就能创立一个文件夹了。然而若何递归创立多级目次呢?

其形式有:

一、PHP5 下创立目次函数 mkdir 添加了一个新的参数 recursive ,经过设置 recursive 为 true 能够完成递归创立目次的目的,然而对PHP4就没有行了。

二、本人写一个递归创立多级目次。

这里,我对第二种形式作一点阐明,也有两种形式,以下:

第一种(用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);
}

阐明:
一、起首 简略说一下mkdir()与mkdirs()的区分,和,is_dir以及dirname():

mkdir() 只能正在曾经存正在的目次中创立创立文件夹(即父级必需有才行)。

mkdirs() 能够正在没有存正在的目次中创立文件夹。诸如:a//b,既能够创立多级目次。

dirname() 是前往门路中的目次局部。

is_dir() 用于判别给出的文件名能否是一个无效的目次

二、大抵流程为:

(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来创立文件夹(和多级文件夹)的办法。^_^

总结:

一、用PHP5中自带的mkdir 中的一个新的参数 recursive ,经过设置 recursive 为 true 能够完成递归创立目次的目的,然而对PHP4就没有行了。

二、本人写的办法中,用mkdirs来创立多级父级目次形式

三、依然用mkdir很巧妙的来创立

相干文章教程保举:php教程

以上就是php中mkdir的应用办法引见的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 mkdir

抱歉,评论功能暂时关闭!