PHP中是否有一种方法可以创建具有与 folder
相同权限的 parent
。
例如:
我有一个拥有/a/b
权限的文件夹0755
,
我想创建具有相同权限的文件夹a/b/c
。 0755
。
据我所知,PHP默认使用0777
函数创建具有mkdir
权限的文件夹。有没有一种聪明的方法来检测父文件夹的权限,然后使用相同的chmod创建该子文件夹?
编辑:在这里,我正在寻找一种使用mkdir
而不是如何获取文件/文件夹许可权来创建floder的解决方案。
@ArtisticPhoenix解决方案是我想要的。
谢谢。
答案 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
就是我所需要的。
希望它能起作用。