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学习之PHP表达式
Oct 09 PHP
PHP SQLite类
May 07 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
php&amp;mysql 日期操作小记
Feb 27 PHP
PHP中使用curl入门教程
Jul 02 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
php使用GD2绘制几何图形示例
Feb 15 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
php连接mysql数据库
Mar 21 PHP
php实现微信支付之退款功能
May 30 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 PHP
php中pcntl_fork详解
Apr 01 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简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP如何实现跨域
2016/05/30 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
js style动态设置table高度
2014/10/21 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
js中的闭包实例展示
2018/11/01 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
python基于event实现线程间通信控制
2020/01/13 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
小学教师自我鉴定
2013/11/07 职场文书
生产经理的自我评价分享
2013/11/07 职场文书
年终考核评语
2014/01/19 职场文书
设计师求职信模板
2014/05/06 职场文书
经济贸易系求职信
2014/08/04 职场文书
2014年调度员工作总结
2014/11/19 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python
Golang map映射的用法
2022/04/22 Golang
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS