Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 703d980c580707c382b4e43e25965bc5 > files > 102

php-manual-pt_BR-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Filtros de Compressão</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Manual do PHP"
HREF="index.html"><LINK
REL="UP"
TITLE="Lista de Filtros Disponíveis"
HREF="filters.html"><LINK
REL="PREVIOUS"
TITLE="Fitros de Conversão"
HREF="filters.convert.html"><LINK
REL="NEXT"
TITLE="Encryption Filters"
HREF="filters.encryption.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Manual do PHP</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="filters.convert.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Apêndice O. Lista de Filtros Disponíveis</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="filters.encryption.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="filters.compression"
>Filtros de Compressão</A
></H1
><P
>&#13;   Enquanto os <A
HREF="wrappers.compression.html"
>a seção <I
>Compression Streams</I
>  Apêndice N</A
>
   permitem uma maneira de criar
   arquivos compatíveis com gzip and bz2 no seu sistema de arquivos local, eles não permitem
   meios para compressão generalizada sobre streams de rede, nem permitem uma
   maneira de começar com uma stream não-comprimida e mudar para uma comprimida.
   Para isso, um filtro comprimido pode ser aplicado a qualquer recuso de stream em qualquer momento.
  </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
    Filtros de compressão <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>não</I
></SPAN
> geram cabeçalhos e rodapés
    usados por utilitários de linha de comando como o <TT
CLASS="literal"
>gzip</TT
>. Eles apenas comprimem
    e descomprimem as porções de conteúdo das streams de dados comprimidos.
   </P
></BLOCKQUOTE
></DIV
><P
>&#13;   <TT
CLASS="literal"
>zlib.deflate</TT
> (compressão) e
   <TT
CLASS="literal"
>zlib.inflate</TT
> (descompressão) são implementações dos
   métodos de compressão descritos no <A
HREF="http://www.faqs.org/rfcs/rfc1951"
TARGET="_top"
>RFC 1951</A
>.
   O filtro <TT
CLASS="literal"
>deflate</TT
> recebe até três parâmetros passados como
   um array associativo.

   <CODE
CLASS="parameter"
>level</CODE
> descreve o nível
   de compressão a ser usada (1-9).  Números mais altos geralmente resultam em cargas menores com
   o custo de tempo de processamento adicional. Dois níveis especiais de compressão também existem:
   0 (para nenhuma compressão), e -1 (padrão interno da zlib -- atualmente 6).

   <CODE
CLASS="parameter"
>window</CODE
> é o logaritmo na base 2 do tamanho da janela de loopback de compressão.
   Valores mais altos (acima de 15 -- 32768 bytes) resultam em melhor compressão com o custo de memória,
   enquanto valores menores (abaixo de 9 -- 512 bytes) resultam em pior compressão usando menos memória.
   O tamanho padrão de <CODE
CLASS="parameter"
>window</CODE
> atualmente é <TT
CLASS="constant"
><B
>15</B
></TT
>.

   <CODE
CLASS="parameter"
>memory</CODE
> é uma escala indicando quanta memória deve ser alocada para trabalhar.
   Valores válidos vão de 1 (alocação máxima) até 9 (alocação mínima). Essa alocação de memória
   afeta apenas a velocidade e não tem impacto sobre o tamanho da carga gerada.
  </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
    O nível de compressão, por ser o parâmetro mais usado normalmente, pode ser passado
    de maneira alternativa com um simples valor inteiro (ao invés de um elemento de um array).
   </P
></BLOCKQUOTE
></DIV
><P
>&#13;    Filtros de compressão zlib estão disponíveis com o PHP a partir da versão <TT
CLASS="literal"
>5.1.0</TT
> se
    o suporte à <A
HREF="ref.zlib.html"
>Referência CLXXXVIII, <I
>Zlib - Funções de Compressão</I
></A
> estiver ativado. Eles também estão disponíveis como uma backport na versão
    <TT
CLASS="literal"
>5.0.x</TT
> instalando o pacote <A
HREF="http://pecl.php.net/package/zlib_filter"
TARGET="_top"
>zlib_filter</A
>
    da <A
HREF="http://pecl.php.net"
TARGET="_top"
>PECL</A
>. Esses filtros <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>não</I
></SPAN
> estão disponíveis para
    o PHP 4.
  </P
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN289395"
></A
><P
><B
>Exemplo O-7. 
    <TT
CLASS="literal"
>zlib.deflate</TT
> e
    <TT
CLASS="literal"
>zlib.inflate</TT
>
   </B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$params </font><font color="#007700">= array(</font><font color="#DD0000">'level' </font><font color="#007700">=&gt; </font><font color="#0000BB">6</font><font color="#007700">, </font><font color="#DD0000">'window' </font><font color="#007700">=&gt; </font><font color="#0000BB">15</font><font color="#007700">, </font><font color="#DD0000">'memory' </font><font color="#007700">=&gt; </font><font color="#0000BB">9</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$original_text </font><font color="#007700">= </font><font color="#DD0000">"This is a test.\nThis is only a test.\nThis is not an important string.\n"</font><font color="#007700">;<br />echo </font><font color="#DD0000">"The original text is " </font><font color="#007700">. </font><font color="#0000BB">strlen</font><font color="#007700">(</font><font color="#0000BB">$original_text</font><font color="#007700">) . </font><font color="#DD0000">" characters long.\n"</font><font color="#007700">;<br /><br /></font><font color="#0000BB">$fp </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'test.deflated'</font><font color="#007700">, </font><font color="#DD0000">'w'</font><font color="#007700">);<br /></font><font color="#0000BB">stream_filter_append</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#DD0000">'zlib.deflate'</font><font color="#007700">, </font><font color="#0000BB">STREAM_FILTER_WRITE</font><font color="#007700">, </font><font color="#0000BB">$params</font><font color="#007700">);<br /></font><font color="#0000BB">fwrite</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#0000BB">$original_text</font><font color="#007700">);<br /></font><font color="#0000BB">fclose</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">);<br /><br />echo </font><font color="#DD0000">"The compressed file is " </font><font color="#007700">. </font><font color="#0000BB">filesize</font><font color="#007700">(</font><font color="#DD0000">'test.deflated'</font><font color="#007700">) . </font><font color="#DD0000">" bytes long.\n"</font><font color="#007700">;<br />echo </font><font color="#DD0000">"The original text was:\n"</font><font color="#007700">;<br /></font><font color="#FF8000">/* Use readfile and zlib.inflate to decompress on the fly */<br /></font><font color="#0000BB">readfile</font><font color="#007700">(</font><font color="#DD0000">'php://filter/zlib.inflate/resource=test.deflated'</font><font color="#007700">);<br /><br /></font><font color="#FF8000">/* Generates output:<br /><br />The original text is 70 characters long.<br />The compressed file is 56 bytes long.<br />The original text was:<br />This is a test.<br />This is only a test.<br />This is not an important string.<br /><br /> */<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN289400"
></A
><P
><B
>Exemplo O-8. 
    <TT
CLASS="literal"
>zlib.deflate</TT
> simples
   </B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$original_text </font><font color="#007700">= </font><font color="#DD0000">"This is a test.\nThis is only a test.\nThis is not an important string.\n"</font><font color="#007700">;<br />echo </font><font color="#DD0000">"The original text is " </font><font color="#007700">. </font><font color="#0000BB">strlen</font><font color="#007700">(</font><font color="#0000BB">$original_text</font><font color="#007700">) . </font><font color="#DD0000">" characters long.\n"</font><font color="#007700">;<br /><br /></font><font color="#0000BB">$fp </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'test.deflated'</font><font color="#007700">, </font><font color="#DD0000">'w'</font><font color="#007700">);<br /></font><font color="#FF8000">/* Here "6" indicates compression level 6 */<br /></font><font color="#0000BB">stream_filter_append</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#DD0000">'zlib.deflate'</font><font color="#007700">, </font><font color="#0000BB">STREAM_FILTER_WRITE</font><font color="#007700">, </font><font color="#0000BB">6</font><font color="#007700">);<br /></font><font color="#0000BB">fwrite</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#0000BB">$original_text</font><font color="#007700">);<br /></font><font color="#0000BB">fclose</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">);<br /><br />echo </font><font color="#DD0000">"The compressed file is " </font><font color="#007700">. </font><font color="#0000BB">filesize</font><font color="#007700">(</font><font color="#DD0000">'test.deflated'</font><font color="#007700">) . </font><font color="#DD0000">" bytes long.\n"</font><font color="#007700">;<br /><br /></font><font color="#FF8000">/* Generates output:<br /><br />The original text is 70 characters long.<br />The compressed file is 56 bytes long.<br /><br /> */<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
><P
>&#13;   <TT
CLASS="literal"
>bzip2.compress</TT
> e
   <TT
CLASS="literal"
>bzip2.decompress</TT
>
   funcionam da mesma maneira como os filtros da zlib descritos acima.

   O filtro <TT
CLASS="literal"
>bzip2.compress</TT
> aceitam até dois parâmetros passados como
   elementos de um array associativo:

   <CODE
CLASS="parameter"
>blocks</CODE
> é um valor inteiro
   de 1 até 9 especificando o número de blocos de 100kbyte de memória para alocar para
   o espaço de trabalho.

   <CODE
CLASS="parameter"
>work</CODE
> também é um valor inteiro variando entre
   0 e 250 indicando quanto esforço a será gasto usando o método normal de compressão
   antes de desistir e usar um mais lento, mas mais confiável. Alterar esse parâmetro
   afeta apenas a velocidade de compressão. Nem o tamanho da saída comprimida nem o uso de memória
   são alterados por essa configuração. Um fator de trabalho de 0 diz à biblioteca bzip para usar
   o padrão interno.

   O filtro <TT
CLASS="literal"
>bzip2.decompress</TT
> só aceita um parâmetro,
   que pode ser passado ou como um valor boolean comum ou como o
   elemento <CODE
CLASS="parameter"
>small</CODE
> de um array associativo.

   <CODE
CLASS="parameter"
>small</CODE
>, quando configurado para o valor <TT
CLASS="constant"
><B
>TRUE</B
></TT
>, diz a biblioteca bzip
   para fazer a descompressão usando o mínimo de memória com o custo de velocidade.
  </P
><P
>&#13;    Filtros de compressão bzip2 estão disponíveis no PHP a partir da versão <TT
CLASS="literal"
>5.1.0</TT
> se
    o suporte à <A
HREF="ref.bzip2.html"
>Referência IX, <I
>Bzip2</I
></A
> estiver ativado. Eles também estão disponíveis como um backport na versão
    <TT
CLASS="literal"
>5.0.x</TT
> instalando o pacote <A
HREF="http://pecl.php.net/package/bz2_filter"
TARGET="_top"
>bz2_filter</A
>
    da <A
HREF="http://pecl.php.net"
TARGET="_top"
>PECL</A
>. Esses filtros <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>não</I
></SPAN
> estão
    disponíveis para o PHP 4.
  </P
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN289421"
></A
><P
><B
>Exemplo O-9. 
    <TT
CLASS="literal"
>bzip2.compress</TT
> e
    <TT
CLASS="literal"
>bzip2.decompress</TT
>
   </B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$param </font><font color="#007700">= array(</font><font color="#DD0000">'blocks' </font><font color="#007700">=&gt; </font><font color="#0000BB">9</font><font color="#007700">, </font><font color="#DD0000">'work' </font><font color="#007700">=&gt; </font><font color="#0000BB">0</font><font color="#007700">);<br /><br />echo </font><font color="#DD0000">"The original file is " </font><font color="#007700">. </font><font color="#0000BB">filesize</font><font color="#007700">(</font><font color="#DD0000">'LICENSE'</font><font color="#007700">) . </font><font color="#DD0000">" bytes long.\n"</font><font color="#007700">;<br /><br /></font><font color="#0000BB">$fp </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'LICENSE.compressed'</font><font color="#007700">, </font><font color="#DD0000">'w'</font><font color="#007700">);<br /></font><font color="#0000BB">stream_filter_append</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#DD0000">'bzip2.compress'</font><font color="#007700">, </font><font color="#0000BB">STREAM_FILTER_WRITE</font><font color="#007700">, </font><font color="#0000BB">$param</font><font color="#007700">);<br /></font><font color="#0000BB">fwrite</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#0000BB">file_get_contents</font><font color="#007700">(</font><font color="#DD0000">'LICENSE'</font><font color="#007700">));<br /></font><font color="#0000BB">fclose</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">);<br /><br />echo </font><font color="#DD0000">"The compressed file is " </font><font color="#007700">. </font><font color="#0000BB">filesize</font><font color="#007700">(</font><font color="#DD0000">'LICENSE.compressed'</font><font color="#007700">) . </font><font color="#DD0000">" bytes long.\n"</font><font color="#007700">;<br /><br /></font><font color="#FF8000">/* Generates output:<br /><br />The original text is 3288 characters long.<br />The compressed file is 1488 bytes long.<br /><br /> */<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="filters.convert.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Principal</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="filters.encryption.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Fitros de Conversão</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="filters.html"
ACCESSKEY="U"
>Acima</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Encryption Filters</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>