博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP mkdir() 权限设置
阅读量:5993 次
发布时间:2019-06-20

本文共 646 字,大约阅读时间需要 2 分钟。

hot3.png

使用mkdir创建文件夹时,发现这个函数有两个参数,第二个参数是为新创建的文件夹指定权限,但是如果直接用:

mkdir('文件地址', 0777); 时 发现新文件夹的权限并不是777,一般情况下会是022,因为mkdir在给文件夹制定权限时,会跟当前登录操作系统用户的umask(用户缺省权限属 性)值进行位“与”,得到的值才是最终权限值,所以,如果用户umask是022(一般默认是这个),即:000 010 010 在于mkdir指定的777 ,即:111 111 111 位“与”后,得到的真实权限为:022。
如果想让新建文件夹权限最大,有两种方法可以实现:(当然,是在当前用户能赋予最高权限的条件下)
1、修改用户umask,php提供有umask函数:
$oldumask=umask(0); 
mkdir('test',0777); 
umask($oldumask); 
这种方法看起来一劳永逸,在脚本开头文件里指定下umask值,后面直接用mkdir就可以控制权限,需要注意的是:在多线程服务器上使用umask函数时,多个线程会公用一个umask,所以可能会造成混乱。
2、使用chmod函数,这也是最常用的方法:
mkdir('文件地址', 0777); 
chmod('文件地址', 0777); 
最后,需要注意一点,权限值最好使用八进制表示,即“0”开头,而且一定不要加引号。

转载于:https://my.oschina.net/BearCatYN/blog/267406

你可能感兴趣的文章
图像二值化(直方图法,C语言实现)
查看>>
莫烦Python
查看>>
openfire BOSH 内存泄露
查看>>
字符编码问题
查看>>
Linux Shell 学习(2)
查看>>
40个不
查看>>
查询sql server 执行过的sql
查看>>
CentOS 6.3 源码安装LAMP(Linux+Apache+Mysql+Php)环境
查看>>
Java RTTI和反射机制
查看>>
Hive参数
查看>>
hyena V8.5
查看>>
mybatis实战教程(mybatis in action),mybatis入门到精通
查看>>
android ListView Item和CheckBox、Button点击事件冲突的问题
查看>>
Android之Looper
查看>>
mysql字符串查询常用命令
查看>>
USACO3.1 Humble Numbers(humble)
查看>>
java内存分配
查看>>
aaaa
查看>>
Jenkins 2.7.1 安装
查看>>
java中的native关键字
查看>>