PHP chmod 函数与批量修改文件目录权限

2015-01-24信息快讯网

chmod() 函数改变文件模式。chmod ― Changes file mode 如果成功则返回 TRUE,否则返回 FALSE。

语法
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中FTP函数ftp_connect、ftp_login与ftp_chmod用法
php 文件缓存函数
php下利用curl判断远程文件是否存在的实现代码
如何在symfony中导出为CSV文件中的数据
php利用iframe实现无刷新文件上传功能的代码
php json_encode奇怪问题说明
使用PHP遍历文件夹与子目录的函数代码
php中json_encode中文编码问题分析
PHP正确配置mysql(apache环境)
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
php的urlencode()URL编码函数浅析
兼容firefox,chrome的网页灰度效果
PHP源码之explode使用说明
php中用foreach来操作数组的代码
php设计模式 Chain Of Responsibility (职责链模式)
php判断输入不超过mysql的varchar字段的长度范围
ThinkPHP中实例Model方法的区别说明
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
php file_exists 检查文件或目录是否存在的函数
PHP is_dir() 判断给定文件名是否是一个目录
php is_file 判断给定文件名是否为一个正常的文件
PHP foreach循环使用详解与实例代码
php 在文件指定行插入数据的代码
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
PHP 文件上传全攻略
Windows下安装Memcached的步骤说明
来自phpguru得Php Cache类源码
php cache类代码(php数据缓存类)
php array_search() 函数使用
PHP正则的Unknown Modifier错误解决方法
discuz authcode 经典php加密解密函数解析
用Zend Encode编写开发PHP程序
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
PHP setcookie() cannot modify header information 的解决方法
Cannot modify header information错误解决方法
不用mod_rewrite直接用php实现伪静态化页面代码
©2014-2024 dbsqp.com