ID3 теги (ID3 tag) хранятся в последних 128-ми байтах mp3 файла. Благодаря этому их возможно читать без специальных компонентов.
Порядок распределения информации следующий:
- Byte 1-3 = ID ‘TAG’
- Byte 4-33 = Title
- Byte 34-63 = Artist
- Byte 64-93 = Album
- Byte 94-97 = Year
- Byte 98-127 = Comment
- Byte 128 = Genre
Для получения тегов достаточно отформатировать бинарные строки в соответствии с приведенной последовательностью:
$f = fopen(’sample.mp3′, ‘rb’);
rewind($f);
fseek($f, -128, SEEK_END);
$tmp = fread($f,128);
if ($tmp[125] == Chr(0) and $tmp[126] != Chr(0)) {
// ID3 v1.1
$format = ‘a3TAG/ a30NAME/ a30ARTISTS/ a30ALBUM/a4YEAR/ a28COMMENT/ x1/C1TRACK/ C1GENRENO’;
} else {
// ID3 v1
$format = ‘a3TAG/ a30NAME/ a30ARTISTS/ a30ALBUM/ a4YEAR/ a30COMMENT/ C1GENRENO’;
}
$id3tag = unpack($format, $tmp);
Результатов будет ассоциативный массив со значениями тегов.