單行程式碼壓縮和解壓縮檔案
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);
}
?>
此外,顯然在 PHP/5.3.6 版本中,「zip:」包裝器不允許寫入。您可以參考 https://php.dev.org.tw/ziparchive-getstream 以取得更多資訊,因為底層程式碼可能相同。