Ho provato una cosa del genere ma non va... uff ci sto perdendo la testa con sta compressione XD

Codice PHP:
if (!function_exists('el_zip_gzDecode')) {
    function 
el_zip_gzDecode ($data, &$filename null, &$comment null) {
        
$gzMagic sprintf("%X%X",ord(substr($data11)),ord(substr($data01)));
        if(
$gzMagic != "8B1F"){
            
$unpacked = @gzinflate($data);
            return 
$unpacked;
        }
        
$flags ord(substr($data31));
        
$headerlen 10;
        if (
$flags 4) {
            
$extralen unpack('v' ,substr($data102));
            
$extralen $extralen[1];
            
$headerlen += $extralen;
        }
        if (
$flags 8){ // Filename
            
$new_headerlen strpos($datachr(0), $headerlen) + 1;
            
$gzfname substr($data$headerlen$new_headerlen $headerlen 1);
            
$headerlen $new_headerlen;
            if(isset(
$filename)) $filename $gzfname;
        }
        if (
$flags 16){ // Comment
            
$new_headerlen strpos($datachr(0), $headerlen) + 1;
            
$gzcomment substr($data$headerlen$new_headerlen $headerlen 1);
            
$headerlen $new_headerlen;
            if(isset(
$comment)) $comment $gzcomment;
        }
        if (
$flags 2// CRC at end of header
            
$headerlen += 2;
        
$old_size strlen($data);
        
$new_size $old_size $headerlen 8;
        
$packed substr($data$headerlen$new_size);
        
$unpacked gzinflate($packed);
        return 
$unpacked;
    }
}

while (!
feof ($socket)) {
$part .= fgets ($socket);

}
$a el_zip_gzDecode($part);
echo 
$a