One-liners to gzip and ungzip a file:
copy('file.txt', 'compress.zlib://' . 'file.txt.gz');
copy('compress.zlib://' . 'file.txt.gz', 'file.txt');
zlib:// -- bzip2:// -- zip:// — Сжатые потоки
compress.zlib:// и compress.bzip2://
Обёртка zlib: работает как функция gzopen(), за исключением того что с этим потоком сможет работать функция fread() и другие функции, которые работают с файловой системой. Обёртка устарела из-за неоднозначности при наличии файлов, которые содержат ':'; вместо неё пользуются обёрткой compress.zlib://.
Обёртки compress.zlib:// и compress.bzip2:// эквиваленты функциям gzopen() и bzopen() соответственно и работают даже в системах, которые не поддерживают fopencookie.
Модуль ZIP добавляет обёртку zip:.
Начиная с PHP 7.2.0 и libzip 1.2.0+ добавили поддержку паролей для зашифрованных архивов,
разрешая предоставлять пароли через контексты потоков.
Пароли можно установить через контекстную опцию 'password'
.
One-liners to gzip and ungzip a file:
copy('file.txt', 'compress.zlib://' . 'file.txt.gz');
copy('compress.zlib://' . 'file.txt.gz', 'file.txt');
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.