PHP의 exif_read_data() 함수는 이미지 파일에서 EXIF(Exchangeable Image File Format) 헤더 정보를 읽어오는 함수입니다. JPEG나 TIFF 같은 이미지 파일에 포함된 촬영 정보, 카메라 설정, 썸네일 등 다양한 메타데이터를 연관 배열 형태로 추출할 수 있습니다.
문법
Array exif_read_data( str $file, str $section = null, bool $arrays = false, bool $thumbnail = false )
매개변수
exif_read_data() 함수는 다음 네 가지 매개변수를 받습니다.
$file − EXIF 데이터를 읽어올 이미지 파일의 경로를 지정합니다. 로컬 파일 경로 또는 스트림을 사용할 수 있습니다.
$section − 결과 배열에 포함할 섹션 목록을 쉼표로 구분하여 지정합니다. 예를 들어 FILE, COMPUTED, ANY_TAG 등이 있으며, 생략하면 모든 섹션이 포함됩니다.
$arrays − 각 섹션을 배열 형태로 반환할지 여부를 지정합니다. 기본값은 false입니다.
$thumbnail − 이미지에 포함된 썸네일 데이터를 함께 읽어올지 여부를 지정합니다. 기본값은 false입니다.
반환 값
exif_read_data() 함수는 성공 시 EXIF 헤더 정보를 담은 연관 배열(associative array)을 반환하고, 실패 시 false를 반환합니다.
사용 예제
<?php
// 로컬 드라이브에서 이미지 불러오기
$arrays = exif_read_data('C:\xampp\htdocs\test\research.jpg');
// 출력
print_r($arrays);
?>위 예제에서 사용한 이미지는 다음과 같습니다.

실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Array
(
[FileName] => research.jpg
[FileDateTime] => 1627296139
[FileSize] => 45686
[FileType] => 2
[MimeType] => image/jpeg
[SectionsFound] =>
[COMPUTED] => Array
(
[html] => width="640" height="358"
[Height] => 358
[Width] => 640
[IsColor] => 1
)
)출력 결과를 보면 파일 이름, 수정 시간, 파일 크기, MIME 타입 등의 기본 정보와 함께, COMPUTED 섹션에는 HTML 속성으로 활용할 수 있는 이미지의 너비와 높이 정보가 포함되어 있는 것을 확인할 수 있습니다.