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在线打包程序源码
Jul 27 PHP
PHP之数组学习
May 29 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
vue之延时刷新实例
2019/11/14 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
解决Python传递中文参数的问题
2015/08/04 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
Python sep参数使用方法详解
2020/02/12 Python
Python之变量类型和if判断方式
2020/05/05 Python
解决python运行效率不高的问题
2020/07/20 Python
python实现登录与注册系统
2020/11/30 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
高一英语教学反思
2014/01/22 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
环保标语口号
2014/06/13 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
经典祝酒词大全
2015/08/12 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
Golang获取List列表元素的四种方式
2022/04/20 Golang