php解压zip乱码的解决方法
这篇文章给大家分享的是有关php解压zip乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
成都创新互联公司服务项目包括界首网站建设、界首网站制作、界首网页制作以及界首网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,界首网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到界首省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
php解压zip乱码的解决办法:首先打开相应的PHP文件;然后用PHP的zip封装协议解压去解决ZipArchive乱码即可。
php解压zip文件 乱码问题
官方的操作方法:
open($zipfile); $toDir = "./test"; $s = $zip->extractTo($toDir); print_r(scandir($toDir));
存在的问题
如果zip是在windows平台压缩的,那么在linux服务器执行以上代码将会出现乱码,同时解压出来的文件也会缺失
解决方案
问题分析:
ZipArchive乱码,是因为编码不一致导致的,Windows的文件系统是gbk编码的,而PHP ZipArchive中的文件名是UTF-8编码的。Zip压缩包中如果文件名包含中文等特殊字符,用PHP ZipArchive解压乱码是必然的事情。ZipArchive压缩文件出现乱码或者无法将文件压缩进去,也是相同的道理
解决思路
不要用自带的ZipArchive::extractTo()方法去解压ZipArchive文档,改用PHP的zip封装协议解压去解决ZipArchive乱码。
解决代码
open($zipfile); $toDir = "./test"; if(!file_exists($toDir)) { mkdir($toDir); } $docnum = $zip->numFiles; for($i = 0; $i < $docnum; $i++) { $statInfo = $zip->statIndex($i); if($statInfo['crc'] == 0) { //新建目录 mkdir($toDir.'/'.substr($statInfo['name'], 0,-1)); } else { //拷贝文件 copy('zip://'.$zipfile.'#'.$statInfo['name'], $toDir.'/'.$statInfo['name']); } } print_r(scandir($toDir));
感谢各位的阅读!关于“php解压zip乱码的解决方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
名称栏目:php解压zip乱码的解决方法
转载来源:http://ybzwz.com/article/pidiog.html