gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompress -- Распаковывает строку

Описание

string gzuncompress ( string data [, int length] )

Распаковывает строку.

Список параметров

data

Данные, сжатые функцией gzcompress().

length

Максимальная длина данных для распаковки.

Возвращаемые значения

Распакованные данные или FALSE в случае ошибки.

Функция сообщит об ошибке также в случае, когда распакованные данные длиннее в более, чем 32768 или length раз сжатых.



gzuncompress
chappy at citromail dot hu
13-Apr-2006 07:47
Reading an ID3v2.3+ tag it is versy useful, because these tag's frames might be compressed. Zlib compressed frame layout (ID3v2.3):

Descriptior                                                    Size
-------------------
Frameheader:
Frame id:                                                      4 bytes
Frame size (full frame size - frameheader size): 4 bytes
Frame flags:                                                  2 bytes
   The 2nd byte's 7th bit must be 1 (e.g.: %1xy00000)
Frame content decrompessed size:                  4 bytes
--------------------
Framecontent:
Compressed string                                          described in 'frame size'

<?php
$frame
="[read from a mp3 file]";
$frame_id=substr($frame,0,4);
/*....*/
$cs=substr($frame,10,4);
$checksize=$cs[3]*16777216+$cs[2]*65536+$cs[1]*256+$cs[0];

$content=substr($frame,14,$contentsize);
$content=gzuncompress($content);
if(
strlen($content)!=$checksize){
   echo
'Error whil uncrompessing frame data<br>';
}
echo
$content;
?>

<gztellgzwrite>
 Last updated: Tue, 15 Nov 2005