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音乐采集(部分代码)
Feb 14 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
php visitFile()遍历指定文件夹函数
Aug 21 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 PHP
PHP中使用curl入门教程
Jul 02 PHP
php实现Mysql简易操作类
Oct 11 PHP
实例讲解PHP设计模式编程中的简单工厂模式
Feb 29 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
Aug 17 PHP
THINKPHP5分页数据对象处理过程解析
Oct 28 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读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php精度计算的问题解析
2019/06/21 PHP
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python制作简单的网页爬虫
2015/11/22 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
Django自定义manage命令实例代码
2018/02/11 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
opencv实现图像平移效果
2021/03/24 Python
校园门卫岗位职责
2013/12/09 职场文书
个人委托书格式
2014/04/04 职场文书
员工生日会策划方案
2014/06/14 职场文书
法院授权委托书范文
2014/08/02 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
个人原因辞职信模板
2015/05/13 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android
git stash(储藏)的用法总结
2022/06/25 Servers