fileperms 함수

(PHP 4, PHP 5, PHP 7, PHP 8)

fileperms — 파일 권한을 얻습니다.


설명

fileperms(string $filename): int|false

주어진 파일에 대한 권한을 가져옵니다.


매개변수

filename
파일의 경로입니다.

반환 값

파일의 권한을 숫자 모드로 반환합니다. 이 모드의 하위 비트는 chmod()에서 예상하는 권한과 동일하지만 대부분의 플랫폼에서 반환 값에는 filename으로 제공된 파일 유형에 대한 정보도 포함됩니다. 아래 예는 Linux 및 macOS를 포함한 POSIX 시스템에서 특정 권한 및 파일 형식에 대한 반환 값을 테스트하는 방법을 보여줍니다.

로컬 파일의 경우 특정 반환 값은 C 라이브러리의 stat() 함수에 의해 반환된 구조의 st_mode 멤버의 값입니다. 정확히 설정되는 비트는 플랫폼마다 다를 수 있으며 반환 값의 비허가 비트를 구문 분석해야 하는 경우 특정 플랫폼의 설명서를 찾는 것이 좋습니다.

실패 시 false를 반환합니다.


오류/예외

실패 시 E_WARNING이 발생합니다.


Examples

예제 #1 권한을 8진수 값으로 표시

                  
<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>
                  
                

위의 예는 다음을 출력합니다.

1777
0644
                

예제 #2 전체 권한 표시

                  
<?php
$perms = fileperms('/etc/passwd');

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

위의 예는 다음을 출력합니다.

-rw-r--r--
                

메모

참고: 이 함수의 결과는 캐시됩니다. 자세한 내용은 clearstatcache()를 참조하세요.

PHP 5.0.0부터 이 함수는 일부 URL 래퍼와 함께 사용할 수도 있습니다. stat() 기능 제품군을 지원하는 래퍼를 확인하려면 지원되는 프로토콜 및 래퍼를 참조하세요.


기타

  • chmod() - 파일 모드 변경
  • is_readable() - 파일이 존재하고 읽을 수 있는지 여부를 알려줍니다.
  • stat() - 파일에 대한 정보를 제공합니다