PHP의 lstat() 함수는 파일 또는 심볼릭 링크에 대한 상세 정보를 반환합니다. 이 함수는 stat() 함수와 매우 유사하지만, 한 가지 중요한 차이점이 있습니다. 만약 file 매개변수가 심볼릭 링크라면, 링크가 가리키는 원본 파일이 아닌 심볼릭 링크 자체의 상태 정보를 반환한다는 점입니다.
lstat() 함수는 아래 표와 같은 요소들을 담은 배열을 반환합니다.
- [0] 또는 [dev] – 장치 번호(Device number)
- [1] 또는 [ino] – Inode 번호
- [2] 또는 [mode] – Inode 보호 모드(권한 정보)
- [3] 또는 [nlink] – 링크 수
- [4] 또는 [uid] – 소유자의 사용자 ID(User ID)
- [5] 또는 [gid] – 소유자의 그룹 ID(Group ID)
- [6] 또는 [rdev] – Inode 장치 타입
- [7] 또는 [size] – 파일 크기(바이트 단위)
- [8] 또는 [atime] – 마지막 접근 시간(Unix 타임스탬프)
- [9] 또는 [mtime] – 마지막 수정 시간(Unix 타임스탬프)
- [10] 또는 [ctime] – 마지막 inode 변경 시간(Unix 타임스탬프)
- [11] 또는 [blksize] – 파일시스템 IO 블록 크기
- [12] 또는 [blocks] – 할당된 블록 수
문법(Syntax)
lstat(file_path)
매개변수(Parameters)
- file_path – 상태 정보를 확인할 파일의 경로를 지정합니다.
반환값(Return)
lstat() 함수는 위에서 설명한 요소들을 포함한 배열을 반환합니다. 숫자 인덱스([0], [1], ...)와 문자열 키([dev], [ino], ...) 두 가지 형태로 동일한 값에 접근할 수 있습니다.
예제(Example)
<?php
print_r(lstat("new.txt"));
?>
실행 결과(Output)
Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 120
[8] => 17128173529
[9] => 1984185875
[10] => 1294322653
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 120
[atime] => 1718173529
[mtime] => 1984185875
[ctime] => 1294322653
[blksize] => -1
[blocks] => -1
)
참고 사항
lstat() 함수의 결과는 운영체제나 서버 환경에 따라 달라질 수 있습니다. 예를 들어 Windows 환경에서는 blksize와 blocks 값이 -1로 반환되며, Unix 계열 시스템에서는 실제 블록 정보가 제공됩니다. 심볼릭 링크가 가리키는 대상 파일의 정보가 필요하다면 stat() 함수를 사용하는 것이 적절합니다.