Desempaquetar por bits en PHP
Quiero desempaquetar una cadena binaria en una matriz mediante una secuencia extraña de 8-8-8-7 bits.
Fácilmente podría hacer algo como esto, para una secuencia normal de 8-8-8-8:
$b=unpack('C*',$data);
for ($i=0,$count=sizeof($b); $i < $count; $i+=4) {
$out[]=array($b[$i+1],$b[$i+2],$b[$i+3],$b[$i+4]);
}
Eso me daría una matriz 2D de bytes, agrupados por 4.
Pero como el cuarto es de 7 bits, simplemente no puedo pensar en nada apropiado.
¿Tienes algunas ideas?