PHP Conference Nagoya 2025

zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip://Fluxos de compactação

Descrição

compress.zlib:// e compress.bzip2://

zlib: funciona como gzopen(), exceto que o fluxo pode ser usado com fread() e outras funções do sistema de arquivos. Isso foi descontinuado devido a ambiguidades com nomes de arquivos contendo caracteres ':'; use compress.zlib:// em vez disso.

compress.zlib:// e compress.bzip2:// são equivalentes para gzopen() e bzopen() respectivamente, e funcionam mesmo em sistemas que não suportam fopencookie.

A extensão ZIP registra o empacotador zip:. a partir do PHP 7.2.0 e libzip 1.2.0+, foi adicionado suporte para as senhas para arquivos criptografados, permitindo que as senhas sejam fornecidas por contextos de fluxo. As senhas podem ser definidas usando 'password', uma opção de contexto de fluxo.

Uso

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Opções

Resumo do Empacotador
Atributo Suportado
Restringido por allow_url_fopen Não
Permite leitura Sim
Permite escrita Sim (exceto zip://)
Permite adição Sim (exceto zip://)
Permite leitura e escrita simultâneas Não
Suporta stat() Não, use o empacotador file:// para verificar o "stat" de arquivos compactados.
Suporta unlink() Não, use o empacotador file:// para excluir arquivos compactados.
Suporta rename() Não
Suporta mkdir() Não
Suporta rmdir() Não

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
20
lewa::cpan.org
7 years ago
One-liners to gzip and ungzip a file:

copy('file.txt', 'compress.zlib://' . 'file.txt.gz');

copy('compress.zlib://' . 'file.txt.gz', 'file.txt');
up
11
alvaro at demogracia dot com
13 years ago
Example on how to read an entry from a ZIP archive (file "bar.txt" inside "./foo.zip"):

<?php

$fp
= fopen('zip://./foo.zip#bar.txt', 'r');
if(
$fp ){
while( !
feof($fp) ){
echo
fread($fp, 8192);
}
fclose($fp);
}

?>

Also, apparently, the "zip:" wrapper does not allow writing as of PHP/5.3.6. You can read http://php.net/ziparchive-getstream for further reference since the underlying code is probably the same.
To Top