用于压缩和解压缩文件的单行代码
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'
流上下文选项设置。
用于压缩和解压缩文件的单行代码
copy('file.txt', 'compress.zlib://' . 'file.txt.gz');
copy('compress.zlib://' . 'file.txt.gz', 'file.txt');
有关如何从 ZIP 存档中读取条目的示例("./foo.zip" 内的 "bar.txt" 文件)
<?php
$fp = fopen('zip://./foo.zip#bar.txt', 'r');
if( $fp ){
while( !feof($fp) ){
echo fread($fp, 8192);
}
fclose($fp);
}
?>
此外,显然,"zip:" 包装器在 PHP/5.3.6 及更高版本中不允许写入。 您可以阅读 https://php.net/ziparchive-getstream 以供进一步参考,因为底层代码可能相同。