创建一个目录路径不适用于 PHP mkdir?

发布于 2024-11-18 00:32:19 字数 491 浏览 3 评论 0原文

我有以下目录 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');

I have the following directory c:/files and I'm trying to create a wrapper function which emulates mkdir()'s functionality except works on more then one folder e.g.

mkdir works fine on the following:

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

But not on this:

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

Heres some rough code to further describe what I'm trying to achieve:

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');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

香橙ぽ 2024-11-25 00:32:19

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);
}

mkdir works fine on the following:

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

But not on this:

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

Wrong, mkdir() has a third parameter

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

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

This makes your custom function obsolete. However, if you really want to create your own function (which in my opinion is not worth to think about, because it already exists built-in), it should look like

function recursive_mkdir ($path, $chmod = 0777) {
  $parent = dirname($path);
  if (!file_exists($parent)) recursive_mkdir($parent, $chmod);
  mkdir($path, $chmod);
}
半步萧音过轻尘 2024-11-25 00:32:19

Call the mkdir() function with the recursive parameter set to TRUE.例如:

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

Call the mkdir() function with the recursive parameter set to TRUE. For example:

mkdir('c:/files/games/say/yes', 0777, TRUE);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文