php在操作文件時,有時候需要先獲取文件的權限,用于檢查文件是否可以進行修改編輯。那么今天飛鳥慕魚就來說一下,php獲取文件的權限的方法。

php fileperms() 函數介紹

国产视频appfileperms():用于獲取文件或文件目錄的權限,用數字表示,如獲取不到返回FALSE。

語法:

fileperms(filename)

參數:

filename:要獲取權限的文件或文件目錄

国产视频app注意:fileperms() 的結果會被緩存。請使用 clearstatcache() 來清理。

php 獲取文件權限的方法

1、使用 fileperms() 獲取文件的權限,返回結果經數字表示

php代碼:

<?php
echo fileperms("test.txt");
?>

返回結果:33206

2、PHP獲取八進制的文件權限

php代碼

<?php
//方法1
echo substr(base_convert(fileperms("test.txt"), 10, 8), 3);
//方法2
echo substr(sprintf('%o', fileperms("test.txt")), -4);
?>

返回結果:0666

3、php獲取文件權限制并以“-rw-r--r--”格式返回

php代碼:

<?php
<?php
$perms = fileperms("text.txt");
switch ($perms & 0xF000) {
    case 0xC000:
        $info = 's';
        break;
    case 0xA000:
        $info = 'l';
        break;
    case 0x8000:
        $info = '-';
        break;
    case 0x6000:
        $info = 'b';
        break;
    case 0x4000:
        $info = 'd';
        break;
    case 0x2000:
        $info = 'c';
        break;
    case 0x1000:
        $info = 'p';
        break;
    default: 
        $info = 'u';
}
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x') : (($perms & 0x0800) ? 'S' : '-'));
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x') : (($perms & 0x0400) ? 'S' : '-'));
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x') : (($perms & 0x0200) ? 'T' : '-'));
echo $info;
?>

返回結果:-rw-rw-rw-