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中的array数组类型分析说明
Jul 27 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php使用百度翻译api示例分享
Jan 31 PHP
php获得url参数中具有&amp;的值的方法
Mar 05 PHP
初识PHP
Sep 28 PHP
php开发工具有哪五款
Nov 09 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 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制作静态网站的模板框架
2006/10/09 PHP
jQuery 源码分析笔记
2011/05/25 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
移动端界面的适配
2017/01/11 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
Python实现的ini文件操作类分享
2014/11/20 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
个人查摆问题及整改措施
2014/10/16 职场文书
培训班通知
2015/04/25 职场文书
社区文明倡议书
2015/04/28 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书