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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
Dec 16 PHP
php在线打包程序源码
Jul 27 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
php实现三级级联下拉框
Apr 17 PHP
PHP微信支付实例解析
Jul 22 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 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
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
php与js的区别是什么
2013/08/05 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python列表切片操作实例总结
2019/02/19 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
Django模板Templates使用方法详解
2019/07/19 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
日本语毕业生自荐信
2014/02/01 职场文书
男女朋友协议书
2014/04/23 职场文书
写给父母的感谢信
2015/01/22 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
SQL中的三种去重方法小结
2021/11/01 SQL Server
使用Ajax实现无刷新上传文件
2022/04/12 Javascript