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() - 파일에 대한 정보를 제공합니다