PHP에서 이미지를 처리 할 때는 응답에서 적절한 컨텐츠 유형을 설정하거나 추가 처리를 수행하기 위해 MIME 유형의 이미지를 가져와야합니다. image_type_to_mime_type () 및 exif_imagetype () 는 일반적으로 사용되는 두 가지 함수입니다. 둘 다 이미지 유형 정보를 얻는 데 도움이 될 수 있습니다. 그러나 두 가지는 사용 시나리오가 다르며 함께 사용하면 작업을보다 효율적으로 완료 할 수 있습니다.
image_type_to_mime_type () 는 이미지 유형 상수 ( imageetype_jpeg , imageetype_png )를 MIME 유형으로 변환하는 함수입니다. 기능 프로토 타입은 다음과 같습니다.
string image_type_to_mime_type(int $imagetype);
$ imageType : 이미지 유형 상수, 일반적으로 exif_imagetype () 또는 기타 이미지 관련 기능을 통해 얻을 수 있습니다.
반환 값 : 유형의 MIME 문자열 (예 : "image/jpeg", "image/png").
exif_imagetype () 는 이미지 유형을 감지하는 함수입니다. 이미지 유형 상수를 반환하며 MIME 유형을 추가로 얻는 데 사용할 수 있습니다. 기능 프로토 타입은 다음과 같습니다.
int exif_imagetype(string $filename);
$ filename : 이미지 파일의 경로.
리턴 값 : 이미지 유형 상수 (예 : imageType_jpeg , imageType_png 등) 이미지 유형을 인식 할 수 없으면 False 가 반환됩니다.
업로드 된 이미지 파일을 처리하고 먼저 유효한 이미지 파일인지 결정하고 MIME 유형을 가져와야한다고 가정하십시오. 이 경우 exif_imagetype () 및 image_type_to_mime_type ()를 조합하여 사용할 수 있습니다.
<?php
// 파일 업로드 경로를 얻었다고 가정 해
$file = 'uploads/sample.jpg';
// 사용 exif_imagetype() 이미지 유형 상수를 얻습니다
$imageType = exif_imagetype($file);
// 이미지 유형이 합법적인지 확인하십시오
if ($imageType !== false) {
// 사용 image_type_to_mime_type() 이미지를 얻으십시오 MIME 유형
$mimeType = image_type_to_mime_type($imageType);
// 출력 이미지 MIME 유형
echo "더럽히는 MIME 유형是: " . $mimeType;
} else {
echo "无法识别该더럽히는图像유형。";
}
?>
이미지 유형 얻기 : Exif_imagetype () 함수를 사용하여 이미지의 유형 상수를 얻습니다. 이 함수는 imageetype_jpeg , imageetype_png 등과 같은 파일의 내용을 기반으로 이미지 유형을 결정합니다. 파일이 유효한 이미지가 아닌 경우 False를 반환합니다.
MIME 유형으로 변환 : 이미지의 유형 상수 (예 : ImageType_jpeg )가 있으면 Image_TYPE_TO_MIME_TYPE () 함수를 통해 MIME 유형으로 변환 할 수 있습니다. 이것은 응답 헤더를 설정하거나 이미지 파일을 처리하는 데 매우 유용합니다.
유효하지 않은 이미지 처리 : exif_imagetype () 가 false를 반환하면 파일을 유효한 이미지로 인식 할 수 없으며 오류 메시지를 출력합니다.
실제 개발에서 파일 업로드를 처리 할 때 파일 유형을 확인하여 사용자가 합법적 인 이미지 파일을 업로드하는지 확인해야합니다. 판단을 위해 파일 확장에 의존하는 경우 보안 문제가 발생할 수 있습니다. exif_imagetype () 와 image_type_to_mime_type ()를 결합하면 악성 파일 업로드를 방지하기 위해 이미지 파일 유형을보다 정확하게 결정할 수 있습니다.
이미지 처리에 외부 URL이 포함되어 이미지 유형을 확인 해야하는 경우 먼저 URL에 해당하는 파일 컨텐츠를 얻은 다음 유형 판단을 할 수 있습니다. 예를 들어, 특정 URL에서 이미지 유형을 가져와야한다고 가정하고 file_get_contents () 를 통해 이미지 컨텐츠를 가져오고 위의 두 기능을 사용하여 처리 할 수 있습니다.
다음은 원격 URL에서 이미지를 처리하는 방법을 보여주는 간단한 예입니다.