PHP解压ZIP压缩包,解决中文乱码问题(ZipArchive)
public function unZip($zipfile,$toDir){
$zip = new \ZipArchive();
if( $zip->open($zipfile) === true ){
$rf = zip_open($zipfile);
$i = 0;
while( $fr = \zip_read($rf) ){
$fileInfo = $zip->statIndex($i,\ZipArchive::FL_ENC_RAW);
$fileName = iconv('GBK','UTF-8',$fileInfo['name']);
if($fileInfo['crc'] == 0) {
$dir = $toDir.$fileName;
if( !file_exists($dir) ){
mkdir($dir,777,true);
}
} else {
$content = zip_entry_read($fr,zip_entry_filesize($fr));
file_put_contents($toDir.'\\'.$fileName, $content);
}
$i++;
}
}
$zip->close();
}