Extension EXIF cho phép làm việc với metadata ảnh từ camera/điện thoại. Hàm exif_imagetype() xác định loại ảnh bằng cách đọc các byte đầu tiên (signature/magic number). Dùng để tránh gọi hàm EXIF khác trên file không hỗ trợ, hoặc kết hợp $_SERVER['HTTP_ACCEPT'] kiểm tra browser có hiển thị được ảnh không.
Cú pháp
int exif_imagetype(string $filename)
Tham số
$filename– Đường dẫn file ảnh.
Giá trị trả về
Trả về hằng số (constant) tương ứng loại ảnh nếu signature khớp, false nếu không.
Bảng hằng số Image Type
| Giá trị | Hằng số | Giá trị | Hằng số |
|---|---|---|---|
| 1 | IMAGETYPE_GIF | 10 | IMAGETYPE_JP2 |
| 2 | IMAGETYPE_JPEG | 11 | IMAGETYPE_JPX |
| 3 | IMAGETYPE_PNG | 12 | IMAGETYPE_JB2 |
| 4 | IMAGETYPE_SWF | 13 | IMAGETYPE_SWC |
| 5 | IMAGETYPE_PSD | 14 | IMAGETYPE_IFF |
| 6 | IMAGETYPE_BMP | 15 | IMAGETYPE_WBMP |
| 7 | IMAGETYPE_TIFF_II (Intel byte order) | 16 | IMAGETYPE_XBM |
| 8 | IMAGETYPE_TIFF_MM (Motorola byte order) | 17 | IMAGETYPE_ICO |
| 9 | IMAGETYPE_JPC | 18 | IMAGETYPE_WEBP |
Ví dụ 1: File JPEG
<?php
$filetype = exif_imagetype('C:\xampp\htdocs\test\office.jpg');
echo "The file type is: " . $filetype;
// Output: The file type is: 2
?>
Ví dụ 2: File PNG
<?php
$filetype = exif_imagetype('C:\xampp\htdocs\test\img46.png');
echo "The file type is: " . $filetype;
// Output: The file type is: 3
?>
Lưu ý
- Chỉ đọc header, không load toàn bộ ảnh → nhanh.
- Cần extension
exifbật trong php.ini. - Kết hợp
image_type_to_mime_type()để lấy MIME type:image_type_to_mime_type(exif_imagetype($file)).