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

PHP - mkdir : Create a folder with the same rights as it's parent

有没有办法在 PHP 中创建一个 folder 具有与 parent[ 相同的权限=34=].

例如: 我有一个具有 0755 权限的文件夹 /a/b, 我想创建具有相同权限的文件夹 a/b/c0755 在这种情况下。

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

编辑:在这里,我正在寻找一种解决方案来创建具有 mkdir 的 floder,而不是如何检索 file/folder 权限。

@ArtisticPhoenix 解决方案正是我所寻找的。

谢谢。

你可以试试我刚擦掉的这个东西(未经测试)

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

我认为其他功能是不言自明的,或者足够基本,它们不需要 link。 dirname($filename) 当然是文件目录。

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

Example #1 Display permissions as an octal value

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

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

希望有用。