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.
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.
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 |
---|---|---|
zlib.output_compression | "Off" | PHP_INI_ALL |
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |
Aqui está uma breve explicação das diretrizes de configuração.
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.
Nível de compressão usado para as saídas.
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.
Esta extensão não possui nenhum tipo resource.
As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.
Este exemplo abre um arquivo temporário e gera uma string teste dentro dele, então ela mostra o conteúdo deste arquivo duas vezes.