- PHP 教程
- PHP - 首页
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 特性
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP - 数据类型
- PHP - 类型转换
- PHP - 类型混淆
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件与 I/O
- PHP - 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期与时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符
- PHP - 算术运算符
- PHP - 比较运算符
- PHP - 逻辑运算符
- PHP - 赋值运算符
- PHP - 字符串运算符
- PHP - 数组运算符
- PHP - 条件运算符
- PHP - 展开运算符
- PHP - 空值合并运算符
- PHP - 比较运算符(宇宙飞船运算符)
- PHP 控制语句
- PHP - 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP - 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - Do…While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值传递
- PHP - 按引用传递
- PHP - 默认参数
- PHP - 具名参数
- PHP - 可变参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量作用域
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头函数
- PHP - 可变函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 文件处理
- PHP - 文件处理
- PHP - 打开文件
- PHP - 读取文件
- PHP - 写入文件
- PHP - 文件是否存在
- PHP - 下载文件
- PHP - 复制文件
- PHP - 追加文件
- PHP - 删除文件
- PHP - 处理 CSV 文件
- PHP - 文件权限
- PHP - 创建目录
- PHP - 列出文件
- 面向对象的 PHP
- PHP - 面向对象编程
- PHP - 类和对象
- PHP - 构造函数和析构函数
- PHP - 访问修饰符
- PHP - 继承
- PHP - 类常量
- PHP - 抽象类
- PHP - 接口
- PHP - 特性
- PHP - 静态方法
- PHP - 静态属性
- PHP - 命名空间
- PHP - 对象迭代
- PHP - 封装
- PHP - final 关键字
- PHP - 重载
- PHP - 克隆对象
- PHP - 匿名类
- PHP Web 开发
- PHP - Web 概念
- PHP - 表单处理
- PHP - 表单验证
- PHP - 表单邮件/URL
- PHP - 完整表单
- PHP - 文件包含
- PHP - GET & POST
- PHP - 文件上传
- PHP - Cookie
- PHP - Session
- PHP - Session 选项
- PHP - 发送邮件
- PHP - 输入过滤
- PHP - Post-Redirect-Get (PRG)
- PHP - 闪存消息
- PHP 高级
- PHP - MySQL
- PHP.INI 文件配置
- PHP - 数组解构
- PHP - 编码规范
- PHP - 正则表达式
- PHP - 错误处理
- PHP - Try…Catch
- PHP - 调试
- PHP - 针对 C 开发人员
- PHP - 针对 PERL 开发人员
- PHP - 框架
- PHP - Core PHP 与框架
- PHP - 设计模式
- PHP - 过滤器
- PHP - JSON
- PHP - 异常
- PHP - 特殊类型
- PHP - 哈希
- PHP - 加密
- PHP - is_null() 函数
- PHP - 系统调用
- PHP - HTTP 认证
- PHP - 交换变量
- PHP - Closure::call()
- PHP - 过滤后的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 期望
- PHP - use 语句
- PHP - 整数除法
- PHP - 已弃用的特性
- PHP - 已移除的扩展和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 进程
- PHP - PDO 扩展
- PHP - 内置函数
- PHP 有用资源
- PHP - 速查表
- PHP - 问答
- PHP - 快速指南
- PHP - 在线编译器
- PHP - 有用资源
- PHP - 讨论
PHP 文件系统 chgrp() 函数
PHP 文件系统 chgrp() 函数可以用来更改文件组。该函数尝试将由 `filename` 指定的文件的组更改为指定的 `group`。只有超级用户可以随意将组更改为任何组,而其他用户只能将其更改为他们所属的组。
文件/目录中的组含义:在基于 Unix 的操作系统中,文件控制系统会规范谁有权访问文件/文件夹以及他们被允许对文件/文件夹执行哪些操作。每个文件/文件夹都有三种类型的用户:所有者(拥有它的人)、组(共享相同权限的人)和其他。
语法
以下是 PHP 文件系统 chgrp() 函数的语法:
bool chgrp ( string $filename, string/int $group )
参数
以下是 chgrp() 函数的必需参数和可选参数:
序号 | 参数及说明 |
---|---|
1 |
filename (必需) 它定义了您想要更改其用户组的文件。 |
2 |
group (必需) 它标识新的用户组。它可以是组名或数字。 |
返回值
此函数在成功时返回 TRUE,失败时返回 FALSE。
PHP 版本
chgrp() 函数最初作为 PHP 4 核心的一部分引入,并且与 PHP 5、PHP 7、PHP 8 兼容良好。
示例
在下面的 PHP 代码中,使用 PHP 文件系统 chgrp() 函数获取文件“sample.txt”的组 ID。之后,它打印更新的组 ID 和时间戳,并将文件的组更改为“admin”。
<?php $filename = "/PhpProject/sample.txt"; $format = "%s's Group ID @ %s: %d\n"; printf($format, $filename, date('r'), filegroup($filename)); chgrp($filename, "admin"); clearstatcache(); // do not cache filegroup() results printf($format, $filename, date('r'), filegroup($filename)); ?>
输出
这将产生以下结果:
/PhpProject/sample.txt's Group ID @ Fri, 23 May 2024 02:42:21 +0200: 0 /PhpProject/sample.txt's Group ID @ Fri, 23 May 2024 02:42:21 +0200: 0
示例
下面的 PHP 代码在使用 chgrp() 函数将组设置为“admin”后,迭代数组中的每个文件,并打印每个文件的更新的组 ID 和时间戳。
在这里,我们还使用了 clearstatcache() 函数来清除文件信息的缓存。
<?php // Specify the filenames here $files = ["/PhpProject/sample1.txt", "/PhpProject/sample2.txt"]; // define format of the file $format = "File: %s, Group ID @ %s: %d\n"; foreach ($files as $filename) { printf($format, $filename, date('r'), filegroup($filename)); chgrp($filename, "admin"); clearstatcache(); printf($format, $filename, date('r'), filegroup($filename)); } ?>
输出
这将生成以下结果:
Permissions for /PhpProject/sample.txt @ Tue, 23 May 2024 02:53:00 +0000: 100644 Permissions for /PhpProject/sample.txt @ Tue, 23 May 2024 02:53:01 +0000: 100644
示例
我们还可以使用 chgrp() 函数同时更改多个文件的组所有权。为此,我们必须将两个路径定义为文件名数组。
<?php // specify the file path here $files = ["/Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt", "/Applications/XAMPP/xamppfiles/htdocs/mac/newfile.txt"]; $format = "File: %s, Group ID @ %s: %d\n"; foreach ($files as $filename) { printf($format, $filename, date('r'), filegroup($filename)); echo "<br>"; // Print a new line for better readability chgrp($filename, "admin"); clearstatcache(); printf($format, $filename, date('r'), filegroup($filename)); echo "<br>"; // Print a new line for better readability } ?>
输出
这将导致以下结果:
File: /Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt, Group ID @ Thu, 23 May 2024 14:44:34 +0200: 80 File: /Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt, Group ID @ Thu, 23 May 2024 14:44:34 +0200: 80 File: /Applications/XAMPP/xamppfiles/htdocs/mac/newfile.txt, Group ID @ Thu, 23 May 2024 14:44:34 +0200: 80 File: /Applications/XAMPP/xamppfiles/htdocs/mac/newfile.txt, Group ID @ Thu, 23 May 2024 14:44:34 +0200: 80
示例
现在,我们将根据给定的条件使用 chgrp() 函数更改组所有权。因此,代码只检查和更正如果现有组所有权不是由“admin”拥有的文件。
该代码还使用了 posix_getgrnam() 函数来检索信息,filename() 函数来获取文件名,filegroup() 函数来获取文件的组。
<?php // specify the file path here $filename = "/Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt"; $groupToSet = "admin"; $format = "File: %s, Group ID @ %s: %d\n"; printf($format, $filename, date('r'), filegroup($filename)); echo "<br>"; if (filegroup($filename) != posix_getgrnam($groupToSet)['gid']) { chgrp($filename, $groupToSet); clearstatcache(); } printf($format, $filename, date('r'), filegroup($filename)); ?>
输出
这将产生以下结果:
File: /Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt, Group ID @ Thu, 23 May 2024 14:51:48 +0200: 80 File: /Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt, Group ID @ Thu, 23 May 2024 14:51:48 +0200: 80
注意
- 您必须具有更改文件组的必要权限。
- 在某些系统上,您可能需要成为超级用户 (root) 才能更改文件的组。
总结
chgrp() 是 PHP 中的一个文件系统函数,允许您更改文件的组。它允许您通过分配合适的归属来管理文件和目录。