>  기사  >  백엔드 개발  >  php创建多级目录方法

php创建多级目录方法

WBOY
WBOY원래의
2016-06-20 13:03:501408검색

我们都知道使用php的mkdir创建类似"a/b/c"这种多层目录的文件夹会提示因目录不存在而创建失败,但项目中又经常会碰到这种需要创建多级目录的情况,那该如何办呢?反正mkdir是行不通了的,有其他的办法吗?

当然是有的,下面就看几种利用php创建多级目录的解决办法。

(1)其实使用mkdir是可以创建多级目录的,不过必须在PHP5下才可以使用该函数创建多级目录。

因为PHP5对创建目录函数 mkdir 增加了一个新的参数 recursive ,通过设置 recursive 为 true 可以实现递归创建目录的目的,但是这个在PHP4环境下是行不通的,例如:mkdir('a/b/c',0777,true);

mkdir函数原型:bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] )

php函数mkdir参数描述

path 必需。规定要创建的目录的名称。
 
mode 必需。规定权限。默认是 0777。
 
recursive 必需。规定是否设置递归模式。
 

context 必需。规定文件句柄的环境。Context 是可修改流的行为的一套选项。

(2)自己写一个函数来实现php创建多级目录的办法

<p>function mkdirs($dir,$mode=0777){</p>	if(is_dir($dir)||@mkdir($dir,$mode)){<br />		return true;<br />	}<br />	if(!mkdirs(dirname($dir),$mode)){<br />		return false;<br />	}<br />	return @mkdir($dir,$mode);<br /><p>}</p>

(3)自己写的一个非常精简的php创建多级目录的方法

<p>function mkdirs($dir){ </p>	return is_dir($dir) or (mkdirs(dirname($dir)) and mkdir($dir,0777)); <br /><p>}</p>

以上自定义函数不一一作解释,自己理解。


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.