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一些有意思的小区别
Dec 06 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
浅析linux下apache服务器的配置和管理
Aug 10 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
Mar 18 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
Laravel框架路由管理简单示例
May 07 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程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
Ionic快速安装教程
2016/06/03 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
实例讲解React 组件
2020/07/07 Javascript
Python读写Json涉及到中文的处理方法
2016/09/12 Python
Python微信库:itchat的用法详解
2017/08/14 Python
python矩阵的转置和逆转实例
2018/12/12 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
教师业务学习制度
2014/01/25 职场文书
广告学毕业生求职信
2014/01/30 职场文书
顶碗少年教学反思
2014/02/21 职场文书
小学毕业寄语大全
2014/04/03 职场文书
保证书范文大全
2014/04/28 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
python缺失值的解决方法总结
2021/06/09 Python
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS