当前位置:首页 > PHP教程 > php函数 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-20 10:51:08 浏览: 评论:0 

chmod() 函数改变文件模式,chmod — Changes file mode如果成功则返回 TRUE,否则返回 FALSE,我们不只是讲chmod简单语法,而且还做了复杂的关于chmod使用实例.

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

语法:chmod(file,mode)

参数 描述

file 必需,规定要检查的文件.

mode 可选,规定新的权限.

mode 参数由 4 个数字组成:

第一个数字永远是 0 

第二个数字规定所有者的权限 

第二个数字规定所有者所属的用户组的权限 

第四个数字规定其他所有人的权限 

可能的值(如需设置多个权限,请对下面的数字进行总计):

1 - 执行权限 2 - 写权限 4 - 读权限 

来看个简单的实例,代码如下:

  1. <?php 
  2. chmod("/somedir/somefile", 755);   // decimal; probably incorrect 
  3. chmod("/somedir/somefile""u+rwx,go+rx"); // string; incorrect 
  4. chmod("/somedir/somefile", 0755);  // octal; correct value of mode 
  5. ?> 

改进递归文件模式@ infosoft ....,这是一个小短,应处理的Linux文件系统的所有文件类型,这个可以批量更改文件或目录的权限,实例代码如下:

  1. <?php 
  2. function chmodr($path$filemode) {  
  3.     if (!is_dir($path))  
  4.         return chmod($path$filemode); 
  5.  
  6.     $dh = opendir($path);  
  7.     while (($file = readdir($dh)) !== false) {  
  8.         if($file != '.' && $file != '..') {  
  9.             $fullpath = $path.'/'.$file;  
  10.             if(is_link($fullpath))  
  11.                 return FALSE;  
  12.             elseif(!is_dir($fullpath) && !chmod($fullpath$filemode))  
  13.                     return FALSE;  
  14.             elseif(!chmodr($fullpath$filemode))  
  15.                 return FALSE;  
  16.         }  
  17.     } 
  18.  
  19.     closedir($dh); 
  20.  
  21.     if(chmod($path$filemode))  
  22.         return TRUE;  
  23.     else  
  24.         return FALSE;  
  25. ?> 

如果你目录太多的话可以用如下代码:

  1. <?php  
  2. $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST); 
  3. //开源代码phpfensi.com 
  4. foreach($iterator as $item) {  
  5.     chmod($item$filemode);  
  6. }  
  7. ?> 
这段代码来修改目录的权限.

Tags: chmod函数 php批量修改目录

分享到: