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

作者:袖梨 2022-07-02

chmod() 函数改变文件模式。chmodChanges file mode

如果成功则返回 TRUE,否则返回 FALSE

语法

chmod(file,mode)

参数 描述
file 必需。规定要检查的文件。
mode

可选。规定新的权限。

mode 参数由 4 个数字组成:

  • 第一个数字永远是 0
  • 第二个数字规定所有者的权限
  • 第二个数字规定所有者所属的用户组的权限
  • 第四个数字规定其他所有人的权限

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

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

来看个简单的实例

 

php教程
chmod("/somedir/somefile", 755);   // decimal; probably incorrect
chmod("/somedir/somefile", "u+rwx,go+rx"); // string; incorrect
chmod("/somedir/somefile", 0755);  // octal; correct value of mode
?>

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

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;
}
?>

如果你目录太多的话可以用

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST);

foreach($iterator as $item) {
    chmod($item, $filemode);
}
?>

这段代码来修改目录的权限

哈哈,我们不只是讲chmod简单语法,而且还做了复杂的关于chmod使用实例

相关文章

精彩推荐