php解压zip文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php解压zip文件相关的知识,希望对你有一定的参考价值。

php实现解压zip文件

 1 function zip($filename, $path)
 2 {
 3 //        $filename = ‘test.zip‘;
 4 //        $path = ‘./document/2016-05-11/test.zip‘;
 5     $path_all = $_SERVER[‘DOCUMENT_ROOT‘] . sp_get_asset_upload_path(mb_substr($path, 2));//think_cmf的获取文件路劲
 6     $file_name_head = mb_substr($path, 0, strrpos($path, "/"));
 7     if (!file_exists($path_all)) {
 8         echo ‘文件不存在‘;
 9     }
10     //z转码  将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到
11     $filename = iconv(‘utf-8‘, ‘gb2312‘, $filename);
12     $path_all = iconv(‘utf-8‘, ‘gb2312‘, $path_all);
13     //打开压缩包
14     $resource = zip_open($path_all);
15     $i = 0;
16     while ($dir_resource = zip_read($resource)) {
17         if (zip_entry_open($resource, $dir_resource)) {
18             $file_name = substr($path_all, 0, strrpos($path_all, "/")) . ‘/‘ . zip_entry_name($dir_resource);
19             $dir_name = zip_entry_name($dir_resource);
20             $file_path = substr($file_name, 0, strrpos($file_name, "/"));
21         }
22         if (!is_dir($file_path)) {
23             mkdir($file_path, 0777, true);
24         }
25         if (!is_dir($file_name)) {
26             $file_size = zip_entry_filesize($dir_resource);
27             //最大读取10M,如果文件过大,跳过解压,继续下一个
28             if ($file_size < (1024 * 1024 * 10)) {
29                 $file_content = zip_entry_read($dir_resource, $file_size);
30                 file_put_contents($file_name, $file_content);
31             }
32             //关闭当前
33             zip_entry_close($dir_resource);
34         }
35         $dir_name = iconv(‘gb2312‘, ‘utf-8‘, $dir_name);
36         $data[$i][filename] = $file_name_head . ‘/‘ . $dir_name;
37         $data[$i][‘size‘] = $file_size;
38         $i++;
39     }
40     zip_close($resource);
41     return $data;
42 }

 

以上是关于php解压zip文件的主要内容,如果未能解决你的问题,请参考以下文章

突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用

突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用

使用 PHP 将大 zip 部分解压到一个文件夹中

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 && Linux下的ZipArchive配置开启压缩

PHP解压压缩包文件到指定目录的实现

用python解压图片并打印代码