创建一个不使用PHP mkdir的目录路径?

时间:2011-07-01 19:45:56

标签: php for-loop foreach while-loop mkdir

我有以下目录c:/files,我正在尝试创建一个包装函数来模拟mkdir()的功能,除了在多个文件夹上工作,例如

mkdir在以下方面运作良好:

mkdir('c:/files/games', 0777);

但不是这个:

mkdir('c:/files/games/say/yes', 0777); 

下面是一些粗略的代码来进一步描述我想要实现的目标:

function mmkdir($path, $chmod = 0777) {
/* do some loop or something with mkdir()? here */
}

mmkdir('C:/tmp/something/something');

mmkdir('C:/tmp/go/something');

mmkdir('C:/tmp/yes');

2 个答案:

答案 0 :(得分:6)

  

mkdir在以下方面运作良好:

     

mkdir('c:/files/games', 0777);

     

但不是这个:

     

mkdir('c:/files/games/say/yes', 0777);

错了,mkdir()有第三个参数

  

bool mkdir(string $ pathname [,int $ mode = 0777 [, bool $ recursive = false [,resource $ context]]])

mkdir('c:/files/games/say/yes', 0777, true); 

这会使您的自定义功能过时。但是,如果确实想要创建自己的函数(在我看来不值得思考,因为它已经内置),它应该看起来像

function recursive_mkdir ($path, $chmod = 0777) {
  $parent = dirname($path);
  if (!file_exists($parent)) recursive_mkdir($parent, $chmod);
  mkdir($path, $chmod);
}

答案 1 :(得分:4)

使用递归参数设置为mkdir()来调用TRUE函数。例如:

mkdir('c:/files/games/say/yes', 0777, TRUE);