Магическое число?

Rosco

Новичок
Магическое число?

Объект: Строка, являющася на самом деле картинкой.
Цель: Получить тип картинки (PNG, JPEG, GIF и т.д.)
Вопрос: Достаточно ли для этого проанализировать первые два байта строки (магическое число) или в указанных типах эти два байта меняются?
 

zaartix

Новичок
У каждого формата есть свои заголовки.
// заголовок jpeg, строчка "яШяа JFIF"
$jpeg_header = pack("c*", 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46);
// заголовок gif, строчка "GIF89a"
$gif_header = pack("c*", 0x47, 0x49, 0x46, 0x38, 0x39, 0x61);
// заголовок png, строчка "‰PNG"
$png_header = pack("c*", 0x89, 0x50, 0x4E, 0x47);
 

Rosco

Новичок
Автор оригинала: zaartix
У каждого формата есть свои заголовки.
// заголовок jpeg, строчка "яШяа JFIF"
$jpeg_header = pack("c*", 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46);
// заголовок gif, строчка "GIF89a"
$gif_header = pack("c*", 0x47, 0x49, 0x46, 0x38, 0x39, 0x61);
// заголовок png, строчка "‰PNG"
$png_header = pack("c*", 0x89, 0x50, 0x4E, 0x47);
Это я уже подглядел в hex-редакторе.

Спасибо!
 

Rosco

Новичок
Автор оригинала: tony2001
[m]getimagesize[/m] - все уже давно сделано до вас.
Не пойдет. Функция принимает в качестве аргумента имя файла, а у меня строка с файлом...
 
Сверху