Home  >  Article  >  Backend Development  >  PHP function introduction—fileperms(): Get file permissions

PHP function introduction—fileperms(): Get file permissions

WBOY
WBOYOriginal
2023-07-25 15:36:161697browse

PHP function introduction—fileperms(): Obtain file permissions

In PHP development, sometimes we need to obtain file permission information, such as determining whether the file is readable, writable, or executable. The PHP function fileperms() can help us achieve this function. This article will introduce the usage and examples of the fileperms() function in detail.

The fileperms() function is used to obtain file permissions. Its prototype is as follows:

string fileperms (string $filename)

Among them, $filename is the file path to obtain permission information. The function returns a string representing the file's permissions.

The following is a simple example showing how to use the fileperms() function to obtain the permissions of a file:

<?php
    $filename = 'test.txt';
    $perms = fileperms($filename);
    echo "文件{$filename}的权限是:{$perms}";
?>

In this example, we use test.txt as the file to obtain permissions . The permission information returned by the fileperms() function is stored in the variable $perms, and then the permission information is output to the user through the echo statement.

If we run the above code, the output may look like this:

文件test.txt的权限是:33204

In this example, we can see that the permission returned by the function is an integer. In fact, this integer represents the permissions of the file, with the lower 9 bits used to identify the read, write and execute permissions of the file. Among them: the first digit of

  • indicates whether it is executable; the second digit of
  • indicates whether it can be written; and the third digit of
  • indicates whether it can be read.

The returned integer uses different bits in memory to store these three permissions, so some bit operations need to be used to obtain specific permissions.

Here is a helper function that converts the integer returned by fileperms() into a readable permission string:

<?php
    function format_perms($perms) {
        $result = '';
        if (($perms & 0xC000) == 0xC000) {
            $result .= 's';
        } elseif (($perms & 0xA000) == 0xA000) {
            $result .= 'l';
        } elseif (($perms & 0x8000) == 0x8000) {
            $result .= '-';
        } elseif (($perms & 0x6000) == 0x6000) {
            $result .= 'b';
        } elseif (($perms & 0x4000) == 0x4000) {
            $result .= 'd';
        } elseif (($perms & 0x2000) == 0x2000) {
            $result .= 'c';
        } elseif (($perms & 0x1000) == 0x1000) {
            $result .= 'p';
        } else {
            $result .= 'u';
        }
    
        if (($perms & 0x0100) == 0x0100) {
            $result .= 'r';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0080) == 0x0080) {
            $result .= 'w';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0040) == 0x0040) {
            if ($perms & 0x0800) {
                $result .= 's';
            } else {
                $result .= 'x';
            }
        } else {
            if (($perms & 0x0800) == 0x0800) {
                $result .= 'S';
            } else {
                $result .= '-';
            }
        }
    
        if (($perms & 0x0020) == 0x0020) {
            $result .= 'r';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0010) == 0x0010) {
            $result .= 'w';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0008) == 0x0008) {
            if ($perms & 0x0400) {
                $result .= 't';
            } else {
                $result .= 'x';
            }
        } else {
            if (($perms & 0x0400) == 0x0400) {
                $result .= 'T';
            } else {
                $result .= '-';
            }
        }
    
        if (($perms & 0x0004) == 0x0004) {
            $result .= 'r';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0002) == 0x0002) {
            $result .= 'w';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0001) == 0x0001) {
            $result .= 'x';
        } else {
            $result .= '-';
        }
    
        return $result;
    }
    
    $filename = 'test.txt';
    $perms = fileperms($filename);
    $formatted_perms = format_perms($perms);
    
    echo "文件{$filename}的权限是:{$formatted_perms}";
?>

If we run this code, the output may look like this:

文件test.txt的权限是:-rw-r--r--

In this example, we define an auxiliary function format_perms() to convert the integer returned by fileperms() into a readable permission string. Finally, we use the echo statement to output the formatted permission string to the user.

Summary:

In PHP development, we often need to obtain file permission information. By using the fileperms() function, we can easily obtain the permissions of a file. This article details the usage of the fileperms() function and provides sample code. Using this function, we can ensure that operations on files comply with permission requirements.

I hope that through this article, you can better understand and use the fileperms() function, thereby improving your PHP development capabilities.

The above is the detailed content of PHP function introduction—fileperms(): Get file permissions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn