久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

25
2018/11

使用PHP對(duì)文件或者文件夾進(jìn)行zip壓縮

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

我們將一個(gè)文件生成一個(gè)壓縮包

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

ZipArchive::open第二個(gè)參數(shù)說(shuō)明:

ZipArchive::OVERWRITE 

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

ZipArchive::CREATE 

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

ZipArchive::EXCL 

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

ZipArchive::CHECKCONS 

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

壓縮單個(gè)文件

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,如果忽略,則會(huì)多一個(gè)名為C:的文件夾
$flag = $zip->close();
echo $flag?'success':'fail';
壓縮多個(gè)文件
$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     不帶/開(kāi)頭
 * @param ZipArchive $zip
 */
function zipFolder($basePath, $relativePath, ZipArchive $zip)
{
    $handler = opendir($basePath.$relativePath);  //打開(kāi)當(dāng)前文件夾
    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文件夾開(kāi)始
$flag = $zip->close();
echo $flag?'success':'fail';


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