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.MVC的模板标签系统(四)
Sep 05 PHP
php代码优化及php相关问题总结
Oct 09 PHP
smarty的保留变量问题
Oct 23 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
解析php中的fopen()函数用打开文件模式说明
Jun 20 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
PHP SplObjectStorage使用实例
May 12 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
PHP微信红包生成代码分享
Oct 06 PHP
java解析json方法总结
May 16 PHP
phpstudy隐藏index.php的方法
Sep 21 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
自己做矿石收音机
2021/03/02 无线电
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
浅谈PHP的反射机制
2016/12/15 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
python实现代码统计程序
2019/09/19 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
物流经理自我评价
2013/09/23 职场文书
员工培训邀请函
2014/01/11 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
水浒传读书笔记
2015/06/25 职场文书
话题作文之诚信
2019/11/28 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers