PHP | chmod 函数

Lasted 2020-12-17 19:26:03

chmod 函数修改文件权限,如设置文件为只读。

函数接收两个参数,其中 mode 为 int 类型,需要八进制格式整型,可使用 octdec() 函数把 int 转 oct。

函数定义

chmod(string $filename, int $mode):bool
// 源文件位于:ext/standard/filestat.c
# 函数定义

PHP_FUNCTION(chmod)
{
  ...
  php_error_docref(NULL, E_WARNING, "Can not call chmod() for a non-standard stream");
  ...
  ret = VCWD_CHMOD(filename, imode);
  if (ret == -1) {
    php_error_docref(NULL, E_WARNING, "%s", strerror(errno));
    RETURN_FALSE;
  }
  RETURN_TRUE;
}

参数

  • checkfilename -文件路径,不能是网络路径。
  • checkmode -权限值。必须输入八进制格式或字符串形式,如 0600 表示所有者可读写。

返回值

  • checkbool - 成功时返回 TRUE,或者在失败时返回 FALSE。

如果文件是远程文件,函数返回 false,抛 Can not call chmod() for a non-standard stream 警告。如果当前执行 PHP 的用户不满足系统的文件权限限制,会操作失败。

示例1: - 使用 chmod() 函数设置文件权限信息。

<?php
/**
 * PHP 使用 chmod() 函数设置文件权限。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 设置文件所有者可读写
chmod("./foo.txt", 0600);

// 设置文件所有者可读写,其他用户可读
chmod("./foo.txt", 0644);

// 设置文件所有用户可读写和执行
chmod("./foo.txt", 0755);

// 等同于上面的功能
chmod("./foo.txt", octdec(755));