06/04/2021, 14:46

Hàm fileperms() trong PHP - PHP Function

Code echo substr(sprintf('%o', fileperms('example.txt')), -4);

Hàm fileperms() sẽ lấy các quyền của file được truyền vào.

Cú pháp

Cú phápfileperms( $filename);

Trong đó:

  • $filename là đường dẫn tới file cần kiểm tra.

Kết quả trả về

Hàm sẽ trả về các quyền của file dưới dạng số. Đối với các bits thấp, các quyền trả về sẽ tương đương với các quyền truyền vào hàm chmod(). Tuy nhiên với hầu hết các hệ điều hành, giá trị trả về sẽ bao gồm cả thông tin về loại file của file được truyền vào.

Ví dụ

Ví dụ về hàm fileperms():

Code
echo substr(sprintf('%o', fileperms('example.txt')), -4);

Kết quả
0666

Ví dụ dưới đây mình lấy trên trang chủ php.net, để lấy các quyền cụ thể của file:

Code
$perms = fileperms('test.txt');

switch ($perms & 0xF000) {
    case 0xC000: // socket
        $info = 's';
        break;
    case 0xA000: // symbolic link
        $info = 'l';
        break;
    case 0x8000: // regular
        $info = 'r';
        break;
    case 0x6000: // block special
        $info = 'b';
        break;
    case 0x4000: // directory
        $info = 'd';
        break;
    case 0x2000: // character special
        $info = 'c';
        break;
    case 0x1000: // FIFO pipe
        $info = 'p';
        break;
    default: // unknown
        $info = 'u';
}

// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? 's' : 'x' ) :
            (($perms & 0x0800) ? 'S' : '-'));

// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? 's' : 'x' ) :
            (($perms & 0x0400) ? 'S' : '-'));

// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? 't' : 'x' ) :
            (($perms & 0x0200) ? 'T' : '-'));

echo $info;

Kết quả
rrw-rw-rw-

Tham khảo: php.net

Nguồn: Zaidap.com.net

Tạ Quốc Bảo

23 chủ đề

7270 bài viết

Cùng chủ đề
0