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
廣告