php壓縮文件操作 ZipArchive

參考文檔: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();
發佈了20 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章