PHP-mkdir:创建一个与父文件夹具有相同权限的文件夹

时间:2019-04-08 18:49:22

标签: php permissions chmod mkdir

PHP中是否有一种方法可以创建具有与 folder 相同权限的 parent

例如: 我有一个拥有/a/b权限的文件夹0755, 我想创建具有相同权限的文件夹a/b/c0755

据我所知,PHP默认使用0777函数创建具有mkdir权限的文件夹。有没有一种聪明的方法来检测父文件夹的权限,然后使用相同的chmod创建该子文件夹?

编辑:在这里,我正在寻找一种使用mkdir而不是如何获取文件/文件夹许可权来创建floder的解决方案。

@ArtisticPhoenix解决方案是我想要的。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以尝试我刚刚擦掉(未试过)的东西

chmod($filename, substr(sprintf('%o', fileperms(dirname($filename))),-4));

http://php.net/manual/en/function.chmod.php

http://php.net/manual/en/function.fileperms.php

我认为其他功能很容易解释,或者足够基本,因此不需要链接。 dirname($filename)当然是文件目录。

substr(sprintf('%o', fileperms(...)),-4)的这些内容来自文档页面:

  

示例1 :将权限显示为八进制值

  echo substr(sprintf('%o', fileperms('/tmp')), -4);
  echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);

这似乎是我们想要使用的东西,因为chmod想要的是,但是否需要测试可能值得测试(也许足够聪明,足以理解它)。我以前从未真正使用过fileperms。在大多数情况下,is_writable就是我所需要的。

希望它能起作用。