파일 정보

파일 정보 (Fileinfo)

파일의 내용 타입(content type)과 인코딩을 알아내는 데 쓰는 확장이에요. 파일에 숨어 있는 '매직 바이트 시퀀스'를 검사해 그 파일이 실제로 무슨 종류인지 추측하는 것이 핵심입니다.

출처: PHP: Fileinfo - Manual

본문

이 모듈의 함수들은 파일 내부의 특정 위치에서 특정 매직 바이트 시퀀스(magic byte sequences) 를 찾아내어 파일의 내용 타입과 인코딩을 추측합니다. 확실하다고 단정할 수는 없는 접근이지만, 사용하는 휴리스틱이 매우 좋은 성능을 보여줘요.

확장자가 속임수일 수 있는 상황(예: 실제로는 HTML인데 .png로 되어 있는 파일)에서 내용을 직접 읽어 진짜 타입을 판별할 때 특히 유용합니다.

Fileinfo 함수

함수 설명
finfo_buffer 문자열 버퍼에 대한 정보 반환
finfo_close finfo 인스턴스 닫기
finfo_file 파일에 대한 정보 반환
finfo_open 새 finfo 인스턴스 생성
finfo_set_flags libmagic 설정 옵션 지정
mime_content_type 파일의 MIME Content-type 검출

finfo 클래스

메서드 설명
finfo::buffer finfo_buffer()의 별칭
finfo::__construct finfo_open의 별칭
finfo::file finfo_file()의 별칭
finfo::set_flags finfo_set_flags()의 별칭

전형적으로는 finfo_open()으로 인스턴스를 만들고 finfo_file()로 파일의 타입을 물어보는 식으로 사용해요. 확장자는 믿기 어렵지만 파일 내용은 반드시 MIME 타입을 드러내기 때문에, 업로드 파일의 실제 종류를 검증하는 데 자주 활용됩니다.

더 알아보기