我正在使用PHP的mkdir函数,我对$ mode参数有些困难。如果我没有指定参数,我将UNIX 755作为新目录的默认权限设置。我想将权限设置为UNIX 777,所以我按照你在这里看到的那样做了:
$mode = '0700';
mkdir($newdir, $mode);
当我这样做时,会创建一个文件夹,但我无法用它做任何事情。实际上我甚至无法删除它!我所能做的只是通过FTP重命名...
然后我尝试设置$ mode ='0600';这使得一个可行的文件夹,但权限设置为UNIX 110.这怎么可能?它不应该是600的UNIX值吗?我在这里错过了一些转换吗?感谢。
答案 0 :(得分:1)
该模式应该是一个数字,而不是一个字符串。请改为$mode = 0700;
。
答案 1 :(得分:0)
根据php.net手册mkdir函数有这样的描述:
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
$ mode这里是一个整数(不是字符串),它必须以“0”开头,因为它基于8(不是基于10)。
更新:(来自php.net)请注意,您可能希望将模式指定为八进制数,这意味着它应该具有前导零。该模式也由当前的umask修改,您可以使用umask()更改。
答案 2 :(得分:0)
如果要将其设置为0777,请尝试以下操作:
oldumask = umask(0);
mkdir('mydir', 0777);
umask($oldumask);
在umask上阅读更多内容,因为目录权限是umask和您指定的内容的组合。