微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

语法
chmod(file,mode)参数 描述
file 必需。规定要检查的文件
mode 可选。规定新的权限。
mode 参数由 4 个数字组成:
一个数字永远是 0
第二个数字规定所有者的权限
第二个数字规定所有者所属的用户组的权限
第四个数字规定其他所有人的权限
可能的值(如需设置多个权限,请对下面的数字进行总计):
1 - 执行权限
2 - 写权限
4 - 读权限
来看个简单的实例
<div class="codetitle"><a style="CURSOR: pointer" data="96500" class="copybut" id="copybut96500" onclick="doCopy('code96500')"> 代码如下:

<div class="codebody" id="code96500">
<?PHP
chmod("/somedir/somefile",755); // 十进制数,可能不对
chmod("/somedir/somefile","u+rwx,go+rx"); // 字符串,不对
chmod("/somedir/somefile",0755); // 八进制数,正确的 mode 值
?>

改进递归文件模式@ infosoft ....,这是一个小短,应处理的Linux文件系统的所有文件类型。这个可以批量更改文件或目录的权限
<div class="codetitle"><a style="CURSOR: pointer" data="88214" class="copybut" id="copybut88214" onclick="doCopy('code88214')"> 代码如下:
<div class="codebody" id="code88214">
<?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;
}
?>

如果你目录太多的话可以用
<div class="codetitle"><a style="CURSOR: pointer" data="66188" class="copybut" id="copybut66188" onclick="doCopy('code66188')"> 代码如下:
<div class="codebody" id="code66188">
<?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”。
<div class="codetitle"><a style="CURSOR: pointer" data="5709" class="copybut" id="copybut5709" onclick="doCopy('code5709')"> 代码如下:
<div class="codebody" id="code5709"> <?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。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

chmod

相关推荐