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

语法
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。

时间: 2024-07-28 12:30:12

PHP chmod 函数与批量修改文件目录权限_php基础的相关文章

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

chmod() 函数改变文件模式.chmod - Changes file mode 如果成功则返回 TRUE,否则返回 FALSE 语法 chmod(file,mode) 参数 描述 file 必需.规定要检查的文件. mode 可选.规定新的权限. mode 参数由 4 个数字组成: 第一个数字永远是 0 第二个数字规定所有者的权限 第二个数字规定所有者所属的用户组的权限 第四个数字规定其他所有人的权限 可能的值(如需设置多个权限,请对下面的数字进行总计): 1 - 执行权限 2 - 写权限

Linux中修改文件目录权限命令chmod

chmod是一个用来改变文件或目录权限的命令:记得博主看黑客军团美剧的时候,第一集系统被入侵的时候,主角就使用过chmod命令. 当使用#ls -l或ll命令时,即可看到当前的文件目录的权限,-rwxrwxrwx即表示权限. 先说一下理论的东西,后面在说明整行字段的含义. 文件系统上的权限是指文件系统上的文件和目录的权限,文件系统上的权限主要针对三类对象(访问者)进行定义: owner:属主,u group:数组,g other:其他,o   每个文件针对每类访问者都定义了三种权限: r:rea

php中动态修改ini配置_php基础

1,运行时改变配置 在前一篇中曾经谈到,ini_set函数可以在php执行的过程中,动态修改php的部分配置.注意,仅仅是部分,并非所有的配置都可以动态修改.关于ini配置的可修改性,参见:http://php.net/manual/zh/configuration.changes.modes.php 我们直接进入ini_set的实现,函数虽然有点长,但是逻辑很清晰: 复制代码 代码如下: PHP_FUNCTION(ini_set) {     char *varname, *new_value

php中数据的批量导入(csv文件)_php基础

有时写程序时后台要求把大量数据导入数据库中,比如计算机考试成绩的查询.电话簿的数据等一般都是存放在excel中的,这时我们可把数据导出成csv文件,然后通过以下程序即可在后台批量导入数据到数据库中. 下面只是主要程序部分: <?php /***************************************************作者:冲星/arcow**************************njj@nuc.edu.cn*****************************

PHP分页函数代码(简单实用型)_php基础

准备数据: 新建一个数据库 test 执行下面的语句(新建一个表 test :id.sex.name 三个字段) CREATE TABLE `test` ( `id` INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `sex` INT( 1 ) NOT NULL , `name` VARCHAR( 20 ) NOT NULL ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin; 添加数据到 te

PHP字符函数大全第1/2页_php基础

AddSlashes: 字符串加入斜线.  bin2hex: 二进位转成十六进位.  Chop: 去除连续空白.  Chr: 返回序数值的字符.  chunk_split: 将字符串分成小段.  convert_cyr_string: 转换古斯拉夫字符串成其它字符串.  crypt: 将字符串用 DES 编码加密.  echo: 输出字符串.  explode: 切开字符串.  flush: 清出输出缓冲区.  get_meta_tags: 抽出文件所有 meta 标记的资料.  htmlspe

PHP中的MYSQL常用函数(php下操作数据库必备)_php基础

1.mysql_connect()-建立数据库连接 格式: resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 例: $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql

数组处理函数库第1/2页_php基础

array : 建立一个新的数组. array_walk : 让用户自订函数能处理数组中的每一个元素. arsort : 将数组的值由大到小排序. asort : 将数组的值由小到大排序. count : 计算变量或数组中的元素个数. current : 返回数组中目前的元素. each : 返回数组中下一个元素的索引及值. end : 将数组的内部指针指到最后的元素. key : 取得数组中的索引资料. ksort : 将数组的元素依索引排序. list : 列出数组中元素的值. next :

使用 phpmyadmin 批量修改 Wordpress 注册用户权限

想到要修改注册用户权限是因为前两天 ppiOS问答 被一位恶意用户发布了一篇恶意的黑帽SEO文章.虽然我已经在 ppiOS问答 后台设置了用户提交的问题默认处于草稿状态,但是这个恶意发文章的用户显然是了解 Wordpress 机制的.尽管没有提供后台接口,但是他还是成功的跳过管理员的审核发布了一篇软文.我发现后第一时间就想到:糟糕,用户权限没有分配好! 之前不了解 Wordpress 的用户注册机制,为了方便用户提问我把新用户注册后的角色统一的设置成了作者,没想到这次却被人利用了这个漏洞.痛定思