Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengenalan fungsi PHP—fileperms(): Dapatkan kebenaran fail

Pengenalan fungsi PHP—fileperms(): Dapatkan kebenaran fail

WBOY
WBOYasal
2023-07-25 15:36:161698semak imbas

Pengenalan fungsi PHP—fileperms(): Dapatkan kebenaran fail

Dalam pembangunan PHP, kadangkala kita perlu mendapatkan maklumat kebenaran fail, seperti menentukan sama ada fail itu boleh dibaca, boleh ditulis atau boleh dilaksanakan. Fungsi PHP fileperms() boleh membantu kami mencapai fungsi ini. Artikel ini akan memperkenalkan penggunaan dan contoh fungsi fileperms() secara terperinci.

Fungsi fileperms() digunakan untuk mendapatkan kebenaran fail. Prototaipnya adalah seperti berikut:

string fileperms (string $filename)

di mana, $filename ialah laluan fail untuk mendapatkan maklumat kebenaran. Fungsi ini mengembalikan rentetan yang mewakili kebenaran fail.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi fileperms() untuk mendapatkan kebenaran fail:

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

Dalam contoh ini, kami menggunakan test.txt sebagai fail untuk mendapatkan kebenaran. Maklumat kebenaran yang dikembalikan oleh fungsi fileperms() disimpan dalam pembolehubah $perms, dan kemudian maklumat kebenaran dikeluarkan kepada pengguna melalui pernyataan gema.

Jika kita menjalankan kod di atas, output mungkin kelihatan seperti ini:

文件test.txt的权限是:33204

Dalam contoh ini, kita dapat melihat bahawa kebenaran yang dikembalikan oleh fungsi adalah integer. Malah, integer ini mewakili kebenaran fail, dengan 9 bit yang lebih rendah digunakan untuk mengenal pasti kebenaran membaca, menulis dan melaksanakan fail. Antaranya:

  • Digit pertama menunjukkan sama ada ia boleh dilaksanakan
  • Digit kedua menunjukkan sama ada ia boleh ditulis
  • Digit ketiga menunjukkan sama ada ia boleh dibaca.

Integer yang dikembalikan menggunakan bit yang berbeza dalam ingatan untuk menyimpan ketiga-tiga kebenaran ini, jadi beberapa operasi bit perlu digunakan untuk mendapatkan kebenaran khusus.

Berikut ialah fungsi pembantu yang menukarkan integer yang dikembalikan oleh fileperms() kepada rentetan kebenaran yang boleh dibaca:

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

Jika kami menjalankan kod ini, output mungkin kelihatan seperti ini:

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

Dalam contoh ini, kami mentakrifkan fungsi tambahan format_perms() disediakan untuk menukar integer yang dikembalikan oleh fileperms() kepada rentetan kebenaran yang boleh dibaca. Akhir sekali, kami menggunakan pernyataan gema untuk mengeluarkan rentetan kebenaran yang diformatkan kepada pengguna.

Ringkasan:

Dalam pembangunan PHP, kita selalunya perlu mendapatkan maklumat kebenaran fail. Dengan menggunakan fungsi fileperms(), kita boleh mendapatkan kebenaran fail dengan mudah. Artikel ini memperincikan penggunaan fungsi fileperms() dan menyediakan kod sampel. Menggunakan fungsi ini, kami boleh memastikan bahawa operasi pada fail mematuhi keperluan kebenaran.

Saya harap melalui artikel ini, anda boleh lebih memahami dan menggunakan fungsi fileperms(), seterusnya meningkatkan keupayaan pembangunan PHP anda.

Atas ialah kandungan terperinci Pengenalan fungsi PHP—fileperms(): Dapatkan kebenaran fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn