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 相关文章推荐
输出控制类
Oct 09 PHP
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
PHP调用MySQL的存储过程的实现代码
Aug 12 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
PHP常用的缓存技术汇总
May 05 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
Codeigniter注册登录代码示例
Jun 12 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
php返回相对时间(如:20分钟前,3天前)的方法
Apr 14 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
layui数据表格自定义每页条数limit设置
Oct 26 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
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
Django中Model的使用方法教程
2018/03/07 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
Python基于Faker假数据构造库
2020/11/30 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
网站编辑求职信
2013/10/17 职场文书
函授本科自我鉴定
2014/02/04 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
Golang的继承模拟实例
2021/06/30 Golang
Win11软件图标固定到任务栏
2022/04/19 数码科技