Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, tudo certo??
To com um problema pra fazer a leitura em modo binário de uns dados em um arquivo...
Preciso fazer a leitura dos primeiros 10bytes de um arquivo no formato MP3 e depois dividir a informação da seguinte forma:
Identificador <- 3 bytes (string)
Versão <- 2 bytes (número hexadecimal)
Flags <- 1 byte ( razão 1 do meu problema )
Tamanho <- 4 bytes ( razão 2 do meu problema)
===============================
Na documentação (versão ID3_V2.3) da ID3.org a estrutura é a seguinte:
ID3v2/file identifier "ID3"
ID3v2 version $03 00
ID3v2 flags %abc00000
ID3v2 size 4 * %0xxxxxxx
Os sinais para um melhor entendimento:
$ -> valor hexadecimal
% -> valor binário
$xx -> byte c/ valor desconhecido
%x -> bit c/ valor desconhecido
===============================
Eu tenho o seguinte script:
<?php$h = fopen("xxx.mp3", "rb");if ($h) { $size = 5; fseek($h, 0); $data = fread($h, $size);}$struct = unpack("A3tag/H4version", $data);header("Content-type: text/plain");var_dump($struct);fclose($h);?>
E isso me retorna (até agora tá tudo ok):
array(2) { ["tag"]=> string(3) "ID3" ["version"]=> string(4) "0300"}
Bom, a minha dúvida é: como fazer pra pegar esses outros 5 bytes e dividí-los nos bits que eu preciso para usar a informação??
Carregando comentários...