參考文檔:http://www.php.cn/manual/view/1285.html
1.創建新的壓縮文件:
function createNewZip(){
$zipFileName = 'D:\project\vr/web/temp/190627_113400.zip';
$imagePaths = [
'D:\project\vr\web\static\image\test\1.jpg',
'D:\project\vr\web\static\image\test\2.jpg',
];
$zip = new \ZipArchive();
//打開zip文件,OVERWRITE重寫,CREATE沒有就創建,參考https://php.net/manual/en/zip.constants.php
if ( $zip -> open ($zipFileName , \ZipArchive::OVERWRITE | \ZIPARCHIVE::CREATE )!== TRUE ) {
exit( "cannot create file" );
}
//向zip文件中添加文件$filename :function addFile ($filename, $localname = null)
//localname:ZIP歸檔文件中的本地名稱,將覆蓋$filename
foreach ($imagePaths as $k => $image){
$zip->addFile($image,'\create_'.($k+1).'.jpg');
}
//Close opened or created archive and save changes
$zip->close();
}
2.追加:
function addFile(){
$imgRootPath = Yii::getAlias('@webroot/static/').'image/test';//文件路徑
$zip = new \ZipArchive();
//打開已存在的zip文件
if ( $zip -> open ('D:/project/vr/web/temp/190627_113400.zip')!== TRUE ) {
echo "cannot open file";
}
$zip->addFile('D:\project\vr\web\static\image\test\add1.jpg','\myadd1.jpg');
$zip->close();
}
3.刪除一個文件:
$imgRootPath = Yii::getAlias('@webroot/static/').'image/test';//文件路徑
$zip = new \ZipArchive();
//打開已存在的zip文件
if ( $zip -> open ('D:/project/vr/web/temp/190627_113400.zip')!== TRUE ) {
echo "cannot open file";
}
$zip->deleteName('\myadd1.jpg');
$zip->close();
4.解壓文件/部分文件到指定文件夾:
$imgRootPath = Yii::getAlias('@webroot/static/').'image/test';//文件路徑
$zip = new \ZipArchive();
//打開已存在的zip文件
if ( $zip -> open ('D:/project/vr/web/temp/190627_113400.zip')!== TRUE ) {
echo "cannot open file";
}
$zip->extractTo('D:/project/vr/web/temp/target');//提取全部文件
$zip->extractTo('D:/project/vr/web/temp/partTarget', array('\create_1.jpg','\create_2.jpg'));//提取部分文件
$zip->close();