ホームページ > バックエンド開発 > PHPチュートリアル > PHP 関数の紹介 - fileperms(): ファイルのアクセス許可を取得する

PHP 関数の紹介 - fileperms(): ファイルのアクセス許可を取得する

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2023-07-25 15:38:01
オリジナル
1828 人が閲覧しました

PHP 関数の紹介 - fileperms(): ファイル権限の取得

PHP 開発では、ファイルが読み取り可能、書き込み可能、​​または実行可能であるかどうかを判断するなど、ファイル権限情報を取得する必要がある場合があります。 PHP 関数 fileperms() は、この機能の実現に役立ちます。この記事では、fileperms()関数の使い方と例を詳しく紹介します。

fileperms() 関数は、ファイルのアクセス許可を取得するために使用されます。そのプロトタイプは次のとおりです。

string fileperms (string $filename)

このうち、$filename はパーミッション情報を取得するためのファイルパスです。この関数は、ファイルのアクセス許可を表す文字列を返します。

次は、fileperms() 関数を使用してファイルのアクセス許可を取得する方法を示す簡単な例です。

1

2

3

4

5

<?php

    $filename = 'test.txt';

    $perms = fileperms($filename);

    echo "文件{$filename}的权限是:{$perms}";

?>

ログイン後にコピー

この例では、取得するファイルとして test.txt を使用します。権限。 fileperms() 関数によって返された権限情報は変数 $perms に格納され、権限情報は echo ステートメントを通じてユーザーに出力されます。

上記のコードを実行すると、出力は次のようになります:

1

文件test.txt的权限是:33204

ログイン後にコピー

この例では、関数によって返されるアクセス許可が整数であることがわかります。実際、この整数はファイルのアクセス許可を表し、下位 9 ビットはファイルの読み取り、書き込み、実行のアクセス許可を識別するために使用されます。このうち、

  • # の 1 桁目は実行可能かどうか、
  • # の 2 桁目は書き込み可能かどうか、
  • # の 3 桁目は実行可能かどうかを示します。読み取れるかどうかを示します。

返された整数は、これら 3 つのアクセス許可を格納するためにメモリ内の異なるビットを使用するため、特定のアクセス許可を取得するにはいくつかのビット操作を使用する必要があります。

これは、fileperms() によって返された整数を読み取り可能なアクセス許可文字列に変換するヘルパー関数です:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

<?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}";

?>

ログイン後にコピー

このコードを実行すると、出力は次のようになります:

1

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

ログイン後にコピー

この例では、補助関数 format_perms() を定義して、fileperms() によって返された整数を読み取り可能なアクセス許可文字列に変換します。最後に、echo ステートメントを使用して、書式設定された許可文字列をユーザーに出力します。

概要:

PHP 開発では、ファイルのアクセス許可情報を取得する必要があることがよくあります。 fileperms() 関数を使用すると、ファイルのアクセス許可を簡単に取得できます。この記事では、fileperms() 関数の使用法を詳しく説明し、サンプル コードを提供します。この機能を使用すると、ファイルに対する操作がアクセス許可の要件に準拠していることを確認できます。

この記事を通じて、fileperms() 関数をよりよく理解して使用できるようになり、PHP 開発能力が向上することを願っています。

以上がPHP 関数の紹介 - fileperms(): ファイルのアクセス許可を取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート