PHP - mkdir : 创建一个与其父文件夹具有相同权限的文件夹
PHP - mkdir : Create a folder with the same rights as it's parent
有没有办法在 PHP 中创建一个 folder
具有与 parent
[ 相同的权限=34=].
例如:
我有一个具有 0755
权限的文件夹 /a/b
,
我想创建具有相同权限的文件夹 a/b/c
。 0755
在这种情况下。
据我所知,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
就是我所需要的。
希望有用。
有没有办法在 PHP 中创建一个 folder
具有与 parent
[ 相同的权限=34=].
例如:
我有一个具有 0755
权限的文件夹 /a/b
,
我想创建具有相同权限的文件夹 a/b/c
。 0755
在这种情况下。
据我所知,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
就是我所需要的。
希望有用。