ZipArchive压缩及中文乱码问题

ZipArchive压缩及中文乱码问题

$zip = new \ZipArchive;//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if ($zip->open($zipName, \ZIPARCHIVE::OVERWRITE | \ZIPARCHIVE::CREATE)!==TRUE) {
    exit('无法打开文件,或者文件创建失败');
}
foreach($files as $val){
    //$attachfile = $attachmentDir . $val['filepath']; //获取原始文件路径
    if(file_exists($val)){
        //addFile函数首个参数如果带有路径,则压缩的文件里包含的是带有路径的文件压缩
        //若不希望带有路径,则需要该函数的第二个参数
        $s_path = str_replace("upload/store_qr/","",$val);
        // $zip->addFile($val, $s_path);//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
        $zip->addFromString(iconv('GB2312', 'gbk//ignore', $s_path), file_get_contents($val));//中文使用这个 UTF-8 GB2312
    }
}
$zip->close();//关闭
if(!file_exists($zipName)){
    exit("无法找到文件"); //即使创建,仍有可能失败
}


标签: php

发表评论: