downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

gzopen> <gzgetss
[edit] Last updated: Fri, 24 Feb 2012

view this page in

gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflateDescomprime uma string usando DEFLATE

Descrição

string gzinflate ( string $data [, int $length ] )

Esta função descomprime uma string.

Parâmetros

data

Os dados comprimidos por gzdeflate().

length

O limite de tamanho dos dados a descompactar.

Valor Retornado

Os dados originais descomprimidos ou FALSE em caso de erro.

Esta função irá retornar um erro se os dados descomprimidos forem maiores do 32768 vezes o tamanho dos dados comprimidos de entrada data ou mais do que o parâmetro opcional length.

Exemplos

Exemplo #1 Exemplo gzinflate()

<?php
$compressed   
gzdeflate('Compress me'9);
$uncompressed gzinflate($compressed);
echo 
$uncompressed;
?>

Veja Também

Veja também gzcompress() - Comprime uma string. gzuncompress() - Descomprime uma string com DEFLATED, gzdeflate() - Comprime uma string usando DEFLATE, e gzencode() - Cria uma string comprimida com gzip.



gzopen> <gzgetss
[edit] Last updated: Fri, 24 Feb 2012
 
add a note add a note User Contributed Notes gzinflate
Steven Lustig 05-Nov-2010 09:44
You can use this to uncompress a string from Linux command line gzip by stripping the first 10 bytes:

<?php
$inflatedOutput
= gzinflate(substr($output, 10, -8));
?>
vitall at ua dot fm 09-Sep-2009 05:10
The correct function for gzip and chunked data particularly when you get "Content-Encoding: gzip" and "Transfer-Encoding: chunked" headers:

<?php
function decode_gzip($h,$d,$rn="\r\n"){
if (isset(
$h['Transfer-Encoding'])){
 
$lrn = strlen($rn);
 
$str = '';
 
$ofs=0;
 do{
   
$p = strpos($d,$rn,$ofs);
   
$len = hexdec(substr($d,$ofs,$p-$ofs));
   
$str .= substr($d,$p+$lrn,$len);
    
$ofs = $p+$lrn*2+$len;
 }while (
$d[$ofs]!=='0');
 
$d=$str;
}
if (isset(
$h['Content-Encoding'])) $d = gzinflate(substr($d,10));
return
$d;
}
?>

Enjoy!
John 12-Jun-2008 10:22
And when retrieving mod_deflate gzip'ed content and using gzinflate() to decode the data, be sure to strip the first 11 chars from the retrieved content.

<?php $dec = gzinflate(substr($enc,11)); ?>
patatraboum at free dot fr 24-Aug-2007 10:57
Some gz string strip header and return inflated
It actualy processes some first member of the gz
See rfc1952 at http://www.faqs.org/rfcs/rfc1952.html for more details and improvment as gzdecode

<?php
function gzBody($gzData){
    if(
substr($gzData,0,3)=="\x1f\x8b\x08"){
       
$i=10;
       
$flg=ord(substr($gzData,3,1));
        if(
$flg>0){
            if(
$flg&4){
                list(
$xlen)=unpack('v',substr($gzData,$i,2));
               
$i=$i+2+$xlen;
            }
            if(
$flg&8) $i=strpos($gzData,"\0",$i)+1;
            if(
$flg&16) $i=strpos($gzData,"\0",$i)+1;
            if(
$flg&2) $i=$i+2;
        }
        return
gzinflate(substr($gzData,$i,-8));
    }
    else return
false;
}
?>
spikeles_ at hotmail dot com 01-Nov-2006 08:12
This can be used to inflate streams compressed by the Java class java.util.zip.Deflater but you must strip the first 2 bytes off it. ( much like the above comment )

<?php $result = gzinflate(substr($compressedData, 2)); ?>
boris at gamate dot com 08-Jul-2003 05:49
When retrieving mod_gzip'ed content and using gzinflate() to decode the data, be sure to strip the first 10 chars from the retrieved content.

<?php $dec = gzinflate(substr($enc,10)); ?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites