• 技术文章 >后端开发 >php教程

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

    2016-06-01 12:18:10原创609

    语法
    chmod(file,mode)参数 描述
    file 必需。规定要检查的文件。
    mode 可选。规定新的权限。
    mode 参数由 4 个数字组成:
    第一个数字永远是 0
    第二个数字规定所有者的权限
    第二个数字规定所有者所属的用户组的权限
    第四个数字规定其他所有人的权限
    可能的值(如需设置多个权限,请对下面的数字进行总计):
    1 - 执行权限
    2 - 写权限
    4 - 读权限
    来看个简单的实例
    复制代码 代码如下:
    chmod("/somedir/somefile", 755); // 十进制数,可能不对
    chmod("/somedir/somefile", "u+rwx,go+rx"); // 字符串,不对
    chmod("/somedir/somefile", 0755); // 八进制数,正确的 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.'//m.sbmmt.com/m/'.$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使用实例

    说明
    bool chmod ( string $filename , int $mode )
    尝试将 filename 所指定文件的模式改成 mode 所给定的。

    注意 mode 不会被自动当成八进制数值,而且也不能用字符串(例如 "g+w")。要确保正确操作,需要给 mode 前面加上 0:

    mode 参数包含三个八进制数按顺序分别指定了所有者、所有者所在的组以及所有人的访问限制。每一部分都可以通过加入所需的权限来计算出所要的权限。数字 1 表示使文件可执行,数字 2 表示使文件可写,数字 4 表示使文件可读。加入这些数字来制定所需要的权限。有关 UNIX 系统的文件权限可以阅读手册“man 1 chmod”和“man 2 chmod”。
    复制代码 代码如下:

    // 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。
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP chmod
    上一篇:php ob_flush,flush在ie中缓冲无效的解决方法_PHP 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP安全编码总结(经验分享)• 非常全面!PHP常见漏洞代码总结!• 一文详解PHP实现职责链设计模式(附代码示例)• php实现通过JSON RPC与go通讯(附代码)• 浅析怎么使用PHP做异步爬取数据
    1/1

    PHP中文网