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 版本]
Mar 20 PHP
PHP垃圾回收机制简单说明
Jul 22 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
作为PHP程序员应该了解MongoDB的五件事
Jun 03 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
PHP7新特性
Mar 09 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笔记之:php数组相关函数的使用
2013/04/26 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
对python中的for循环和range内置函数详解
2018/04/17 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
Python数据正态性检验实现过程
2020/04/18 Python
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
经典演讲稿范文
2013/12/30 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
大课间活动实施方案
2014/03/06 职场文书
技术总监管理职责范本
2014/03/06 职场文书
特教教师先进事迹
2014/05/21 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
教师听课评语大全
2014/12/31 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
通知怎么写?
2019/04/17 职场文书