PHP 文件系统 umask() 函数



PHP 文件系统umask()函数用于更改文件的权限。此函数可以将 PHP 的 umask 设置为掩码 & 0777 并返回旧的 umask。但是,如果我们在没有任何参数的情况下调用 umask() 函数,则返回当前的 umask。

当 PHP 用作服务器模块时,在每个请求完成后都会恢复 umask。

语法

以下是 PHP 文件系统umask()函数的语法:

int umask ([ int $mask ] )

参数

以下是umask()函数唯一必需的参数:

序号 参数和描述
1

$mask(必填)

它是新的 umask。

返回值

如果 mask 为空,umask() 仅返回当前的 umask,否则返回旧的 umask。

PHP 版本

umask() 函数最初作为 PHP 4 核心的一部分引入,并且与 PHP 5、PHP 7 和 PHP 8 兼容。

示例

这是一个基本示例,用于查看如何使用 PHP 文件系统umask()函数获取当前掩码值。

<?php
   // Get the current umask value
   $current_umask = umask();

   // Output the current umask value
   echo "Current umask value: " . decoct($current_umask) . "\n";
?>

输出

以下是以下代码的结果:

Current umask value: 22

示例

这是一个额外的 PHP 示例代码,它使用umask()方法设置文件权限,临时更改和重置 umask 值。

<?php
   $old = umask(0);
   chmod("/PhpProjects/sample.txt", 0755);
   umask($old);

   //  Checking
   if($old != umask()) {
      echo "An error occurred while changing back the umask";
   }
?> 

输出

这将产生以下输出:

#This PHP code generates nothing.

示例

这是一个使用umask()函数为文件创建设置严格 umask 的示例。

<?php
   // Set a strict umask for file creation
   umask(027); 

   // Create a new file with specific permissions
   $file = fopen('/PhpProjects/myfile.txt', 'w');
   fclose($file);

   // Check the actual permissions set due to umask
   $permissions = fileperms('/PhpProjects/myfile.txt');
   echo "Actual permissions of '/PhpProjects/myfile.txt': " . decoct($permissions & 0777) . "\n";
?> 

输出

这将生成以下输出:

Actual permissions of '/PhpProjects/myfile.txt': 644

示例

这是一个使用umask()函数进行安全文件创建的 umask 示例。

<?php
   // Set umask for secure file creation
   umask(0177); 

   // Create a new file with specific permissions
   $file = fopen('/PhpProjects/sample.txt', 'w');
   fclose($file);

   // Check the actual permissions set due to umask
   $permissions = fileperms('/PhpProjects/sample.txt');
   echo "Actual permissions of 'sample.txt': " . decoct($permissions & 0777) . "\n";
?> 

输出

这将导致以下输出:

Actual permissions of 'sample.txt': 755

总结

umask() 方法是一个内置函数,用于更改文件的权限。通过更改 umask 值,您可以帮助确保 PHP 应用程序的安全性和正确的访问控制。

php_function_reference.htm
广告