PHP mkdir()权限疑惑
来源:互联网 发布:防伪底纹软件 编辑:程序博客网 时间:2024/06/13 07:57
使用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”开头,而且一定不要加引号。
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”开头,而且一定不要加引号。
0 0
- PHP mkdir()权限疑惑
- PHP mkdir()权限设置
- php中mkdir()函数的权限问题
- php中mkdir()函数的权限问题
- php中mkdir()函数的权限问题
- php中mkdir()函数的权限问题
- PHP执行linux命令mkdir权限问题
- php mac 下没有mkdir的权限
- PHP创建目录mkdir无写入权限的问题解决方案
- php中 mkdir和chmod创建目录文件夹权限
- PHP mkdir()无写权限的问题解决方法
- php mkdir的用法
- php ——mkdir
- PHP用mkdir()新建立目录无写的权限的问题
- PHP用mkdir()新建立目录无写的权限的问题
- PHP用mkdir()新建立目录无写的权限的问题
- Android JNI mkdir文件夹权限
- PHP之小疑惑
- day4 循环语句3种
- 确定横竖屏响应的接口
- scala整理
- Android性能优化总结
- ZJU-OJ(1002)
- PHP mkdir()权限疑惑
- Spring基于 Annotation 的简单介绍
- 2.4G wifi 的频道/信道 20M 40M的概念,区别
- 有关任务和日程的20个建议,大大提升你的工作效率
- 有沃更精彩,沃课堂理想的移动学习平台
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- Java Filter过滤机制详解
- poj 3264RMQ问题(线段树,ST算法)
- Linux程序设计:调试