Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP exif_imagetype() 함수 완벽 정리 – 이미지 파일 유형 확인하기

EXIF(Exchangeable Image File Format) PHP 확장 기능은 디지털 카메라, 휴대전화 등 디지털 기기로 촬영한 이미지의 메타데이터를 다룰 수 있도록 지원합니다. 이 확장 기능은 이미지 파일 형식에 따라 동작하며, 이미지에 내장된 썸네일을 추출하는 데에도 활용할 수 있습니다.

PHP의 exif_imagetype() 함수는 주어진 이미지의 유형을 판별하는 역할을 합니다. 이 함수는 이미지 파일의 처음 몇 바이트를 읽어 시그니처(signature)를 검사한 뒤 해당 이미지 형식을 식별합니다. 또한 지원하지 않는 파일 형식에 대해 다른 EXIF 함수가 호출되는 것을 사전에 방지하거나, $_SERVER['HTTP_ACCEPT'] 값과 함께 사용해 브라우저에서 특정 이미지를 표시할 수 있는지 여부를 확인하는 용도로도 활용됩니다.

문법(Syntax)

integer exif_imagetype($str filename)

매개변수(Parameters)

exif_imagetype() 함수는 이미지 파일 이름을 담는 $filename 단 하나의 매개변수만 받습니다.

반환 값(Return Values)

올바른 이미지 시그니처가 발견되면 exif_imagetype()은 그에 해당하는 상수 값을 반환하고, 유효한 시그니처가 없으면 False를 반환합니다.

이미지 타입 상수 목록

상수상수
1IMAGETYPE_GIF10IMAGETYPE_JP2
2IMAGETYPE_JPEG11IMAGETYPE_JPX
3IMAGETYPE_PNG12IMAGETYPE_JB2
4IMAGETYPE_SWF13IMAGETYPE_SWC
5IMAGETYPE_PSD14IMAGETYPE_IFF
6IMAGETYPE_BMP15IMAGETYPE_WBMP
7IMAGETYPE_TIFF_II (인텔 바이트 순서)16IMAGETYPE_XBM
8IMAGETYPE_TIFF_MM (모토로라 바이트 순서)17IMAGETYPE_ICO
9IMAGETYPE_JPC18IMAGETYPE_WEBP

예제 1: JPG 이미지 확인하기

<?php
    // 로컬 드라이브에서 이미지 불러오기
    $filetype = exif_imagetype('C:\xampp\htdocs\test\office.jpg');

   // 결과 출력
   echo "The file type is: ", $filetype;
?>

위 예제에서는 다음과 같은 JPG 이미지를 사용했습니다.

PHP exif_imagetype() 함수 완벽 정리 – 이미지 파일 유형 확인하기

실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

The file type is: 2

JPG 파일에 해당하는 상수 값 2(IMAGETYPE_JPEG)가 반환된 것을 확인할 수 있습니다.

예제 2: PNG 이미지 확인하기

이번에는 PNG 이미지로 동일한 코드를 실행해 보겠습니다.

<?php
   // 로컬 드라이브에서 이미지 불러오기
   $filetype = exif_imagetype('C:\xampp\htdocs\test\img46.png');

   // 결과 출력
   echo "The file type is: ", $filetype;
?>

위 예제에서는 다음과 같은 PNG 이미지를 사용했습니다.

PHP exif_imagetype() 함수 완벽 정리 – 이미지 파일 유형 확인하기

실행 결과

코드를 실행하면 다음과 같은 결과가 출력됩니다.

The file type is: 3

PNG 파일에 해당하는 상수 값 3(IMAGETYPE_PNG)이 반환되는 것을 볼 수 있습니다. 이처럼 exif_imagetype() 함수를 활용하면 업로드된 파일이 실제로 어떤 이미지 형식인지 간단하게 검증할 수 있습니다.