欧美成人片一区二区三区,久久碰人妻一区二区三区,久久婷婷激情综合色综合俺也去,狂野欧美性猛交免费视频,久久夜色精品国产亚洲

25
2018/11

使用PHP對文件或者文件夾進行zip壓縮

發(fā)布時間:2018-11-25 18:25:04
發(fā)布者:pengyifeng
瀏覽量:
0

我們將一個文件生成一個壓縮包

open($filename,ZipArchive::CREATE);   //打開壓縮包
foreach($fileList as $file){
    $zip->addFile($file,basename($file));   //向壓縮包中添加文件
}
$zip->close();  //關(guān)閉壓縮包

ZipArchive::open第二個參數(shù)說明:

ZipArchive::OVERWRITE 

總是以一個新的壓縮包開始,此模式下如果已經(jīng)存在則會被覆蓋。

ZipArchive::CREATE 

如果不存在則創(chuàng)建一個zip壓縮包。

ZipArchive::EXCL 

如果壓縮包已經(jīng)存在,則出錯。

ZipArchive::CHECKCONS 

對壓縮包執(zhí)行額外的一致性檢查,如果失敗則顯示錯誤。

壓縮單個文件

new ZipArchive();
$flag = $zip->open('C:/out.zip', ZipArchive::OVERWRITE);
if($flag!==true){
    echo "open error code: {$flag}\n";
    exit();
}
$zip->addFile('C:/1.txt', '1.txt'); //zip文件中的文件名為1.txt,如果忽略,則會多一個名為C:的文件夾
$flag = $zip->close();
echo $flag?'success':'fail';
壓縮多個文件
$zip = new ZipArchive();
$flag = $zip->open('C:/out.zip', ZipArchive::OVERWRITE);
if($flag!==true){
    echo "open error code: {$flag}\n";
    exit();
}
$zip->addFile('C:/1.txt', '1.txt');
$zip->addFile('C:/2.txt', '2.txt');
$flag = $zip->close();
echo $flag?'success':'fail';

添加文件到壓縮包

如果存在壓縮包,則添加;若不存在,則新建

$zip = new ZipArchive();
$flag = $zip->open('C:/out.zip', ZipArchive::CREATE);
if($flag!==true){
    echo "open error code: {$flag}\n";
    exit();
}
$zip->addFile('C:/2.txt', 'folder/2.txt');
$flag = $zip->close();
echo $flag?'success':'fail';
壓縮文件夾
/**
 * @param string $basePath         帶/結(jié)尾
 * @param string $relativePath     不帶/開頭
 * @param ZipArchive $zip
 */
function zipFolder($basePath, $relativePath, ZipArchive $zip)
{
    $handler = opendir($basePath.$relativePath);  //打開當前文件夾
    while(($filename = readdir($handler))!==false){
        if($filename!='.' && $filename!='..'){
            if(is_dir($basePath.$relativePath.'/'.$filename))
                zipFolder($basePath, $relativePath.'/'.$filename, $zip);
            else
                $zip->addFile($basePath.$relativePath.'/'.$filename, $relativePath.'/'.$filename);
        }
    }
    closedir($handler);
}
$zip = new ZipArchive();
$flag = $zip->open('C:/out.zip', ZipArchive::OVERWRITE);
if($flag!==true){
    echo "open error code: {$flag}\n";
    exit();
}
zipFolder('C:/', 'test', $zip);        //壓縮文件夾C:/test,并且壓縮包以test文件夾開始
$flag = $zip->close();
echo $flag?'success':'fail';


關(guān)鍵詞:
返回列表