用于 gzip 和 ungzip 文件的单行代码
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'
流上下文选项设置密码。
用于 gzip 和 ungzip 文件的单行代码
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);
}
?>
此外,显然,截至 PHP/5.3.6,“zip:” 封装器不允许写入。您可以阅读 https://php.net/ziparchive-getstream 以了解更多信息,因为底层代码可能相同。