CXIII . Funções de Compressão Zlib

Introdução

Este módulo lhe possibilita ler e gerar transparentemente arquivos comprimidos do tipo gzip ( .gz) , através de muitas das funções filesystem nas quais funcionam com arquivos gzip comprimidos (e arquivos não comprimidos também , mas não com sockets ) .

Nota : A Versão 4.0.4 introduziu a função fopen-wrapper para arquivos .gz , então você pode usar o prefixo ' zlib : ' especial para acessar arquivos comprimidos transparentemente usando as funções normais de acesso a arquivos f*( ) se você concatenar o nome do arquivo e ou seu caminho com o prefixo 'zlib : ' quando usar a função fopen( ) .

Na versão 4.3.0 , este prefixo especial foi mudado para ' zlib : / / ' para previnir ambiguidades com nome de arquivos contendo ' : ' .

Esta facilidade requer uma biblioteca em tempo de execução que provê a função fopencookie( ) . Em meu conhecimento atual a GNU libc é a única bliblioteca que provê esta facilidade .

Requisitos

Este módulo usa as funções da zlib por Jean-loup Gailly e Mark Adler . Você terá que usar uma versão zlib = à 1.0.9 com este módulo .

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini .

A extensão zlib oferece a opção de comprimir transparentemente suas páginas em tempo real , se o navegador requisitante suportar isto . Então existem três opções no arquivo de configuração php.ini .

Tabela 1 . Opções de Configuração da Zlib

Nome Padrão Modificável
Para maiores detalhes e definições das constantes PHP_INI_* veja a função ini_set() .

Aqui está uma breve explicação das diretrizes de configuração .

zlib.output_compression booleano/inteiro

Serve para comprimir páginas de modo transparente . Se esta opção for mudada para " On " no php.ini ou na configuração do Apache , as páginas serão comprimidas se o navegador enviar um cabeçalho "Accept-Encoding : gzip " ou "deflate" . "Content-Encoding : gzip " (respectivamente "deflate" ) e cabeçalhos "Vary : Accept-Encoding " serão adicionados para a saida .

Você pode usar a função ini_set( ) para desabilitar isto em seu script se os cabeçalhos ainda não foram enviados . Se você enviar um cabeçalho à saída " Content-Type : image / " a compressão será desabilitada , também (para corrigir um defeito do Netscape ) . Você pode reabilitar isto , se você adicionar a função " ini_set('zlib.output_compression' , 'On') " depois da chamada do cabeçalho que que foi adicionado o content-type da imagem .

Esta opção também aceita valores inteiros em vez de valores booleanos " On" / "Off" , usando isto você pode configurar o tamanho do buffer de saída (o padrão é 4KB ) .

Nota: output_handler deve estar vazio se a diretriz estiver configurada em 'On'! Em vez disto você deve usar zlib.output_handler .

zlib.output_compression_level inteiro

Nível de compressão usado para as saídas .

zlib.output_handler string

Você não pode especificar tratamentos adicionais de saída se zlib.output_compression for ativado . Esta configuração faz o mesmo que a output_handler mas em uma ordem diferente .



Índice
gzclose -- Close an open gz-file pointer
gzcompress -- Compress a string
gzdeflate -- Deflate a string
gzencode -- Create a gzip compressed string
gzeof -- Test for end-of-file on a gz-file pointer
gzfile -- Read entire gz-file into an array
gzgetc -- Get character from gz-file pointer
gzgets -- Get line from file pointer
gzgetss -- Get line from gz-file pointer and strip HTML tags
gzinflate -- Inflate a deflated string
gzopen -- Open gz-file
gzpassthru -- Output all remaining data on a gz-file pointer
gzputs -- Write to a gz-file pointer
gzread -- Binary-safe gz-file read
gzrewind -- Rewind the position of a gz-file pointer
gzseek -- Seek on a gz-file pointer
gztell -- Tell gz-file pointer read/write position
gzuncompress -- Uncompress a deflated string
gzwrite -- Binary-safe gz-file write
readgzfile -- Output a gz-file