PHP chmod 函数与批量修改文件目录权限


Posted in PHP onMay 10, 2010

语法
chmod(file,mode)参数 描述
file 必需。规定要检查的文件。
mode 可选。规定新的权限。
mode 参数由 4 个数字组成:
第一个数字永远是 0
第二个数字规定所有者的权限
第二个数字规定所有者所属的用户组的权限
第四个数字规定其他所有人的权限
可能的值(如需设置多个权限,请对下面的数字进行总计):
1 - 执行权限
2 - 写权限
4 - 读权限
来看个简单的实例

<?php 
chmod("/somedir/somefile", 755); // 十进制数,可能不对 
chmod("/somedir/somefile", "u+rwx,go+rx"); // 字符串,不对 
chmod("/somedir/somefile", 0755); // 八进制数,正确的 mode 值 
?>

改进递归文件模式@ infosoft ....,这是一个小短,应处理的Linux文件系统的所有文件类型。这个可以批量更改文件或目录的权限
<?php 
function chmodr($path, $filemode) { 
if (!is_dir($path)) 
return chmod($path, $filemode); 
$dh = opendir($path); 
while (($file = readdir($dh)) !== false) { 
if($file != '.' && $file != '..') { 
$fullpath = $path.'/'.$file; 
if(is_link($fullpath)) 
return FALSE; 
elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode)) 
return FALSE; 
elseif(!chmodr($fullpath, $filemode)) 
return FALSE; 
} 
} 
closedir($dh); 
if(chmod($path, $filemode)) 
return TRUE; 
else 
return FALSE; 
} 
?>

如果你目录太多的话可以用
<?php 
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST); 
foreach($iterator as $item) { 
chmod($item, $filemode); 
} 
?>

这段代码来修改目录的权限
哈哈,我们不只是讲chmod简单语法,而且还做了复杂的关于chmod使用实例

说明
bool chmod ( string $filename , int $mode )
尝试将 filename 所指定文件的模式改成 mode 所给定的。

注意 mode 不会被自动当成八进制数值,而且也不能用字符串(例如 "g+w")。要确保正确操作,需要给 mode 前面加上 0:

mode 参数包含三个八进制数按顺序分别指定了所有者、所有者所在的组以及所有人的访问限制。每一部分都可以通过加入所需的权限来计算出所要的权限。数字 1 表示使文件可执行,数字 2 表示使文件可写,数字 4 表示使文件可读。加入这些数字来制定所需要的权限。有关 UNIX 系统的文件权限可以阅读手册“man 1 chmod”和“man 2 chmod”。

<?php 
// Read and write for owner, nothing for everybody else 
chmod("/somedir/somefile", 0600); 
// Read and write for owner, read for everybody else 
chmod("/somedir/somefile", 0644); 
// Everything for owner, read and execute for others 
chmod("/somedir/somefile", 0755); 
// Everything for owner, read and execute for owner's group 
chmod("/somedir/somefile", 0750); 
?>

如果成功则返回 TRUE,失败则返回 FALSE。

Note: 当前用户指的是执行 PHP 的用户。很可能和通常的 shell 或者 FTP 用户不是同一个。在大多数系统下文件模式只能被文件所有者的用户改变。

Note: 本函数不能作用于远程文件,被检查的文件必须通过服务器的文件系统访问。

Note: 当安全模式打开的时候,PHP 会检查所操作的文件是否和正在执行的脚本具有相同的 UID (所有者)。要注意的是,不能修改 SUID,SGID 和 sticky bits。

PHP 相关文章推荐
PHP生成带有雪花背景的验证码
Sep 28 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
php对数组排序代码分享
Feb 24 PHP
php强制运行广告的方法
Dec 01 PHP
php简单图像创建入门实例
Jun 10 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
php file_exists 检查文件或目录是否存在的函数
May 10 #PHP
php disk_free_space 返回目录可用空间
May 10 #PHP
PHP is_dir() 判断给定文件名是否是一个目录
May 10 #PHP
php is_file 判断给定文件名是否为一个正常的文件
May 10 #PHP
php下用cookie统计用户访问网页次数的代码
May 09 #PHP
简单的PHP留言本实例代码
May 09 #PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 #PHP
You might like
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
pygame实现弹球游戏
2020/04/14 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
怎样写好自我鉴定
2013/12/04 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
小孩不笨观后感
2015/06/03 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
python基础之while循环语句的使用
2021/04/20 Python