php创建多级目录方法

WBOY
Release: 2016-06-20 13:03:50
Original
1413 people have browsed it

我们都知道使用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>
Copy after login

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

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

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


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template