本类实现参考 php manual 评论

/***  function: 解压zip 格式的文件*  author:friker*  date:2015-15-14*  reference:http://php.net/manual/zh/ref.zip.php*  all rights reserved:wujiangwei123@126.com*/class Unzip{public function __construct(){//init code here...header("content-type:text/html;charset=utf8");}/*** 解压文件到指定目录** @param   string   zip压缩文件的路径* @param   string   解压文件的目的路径* @param   boolean  是否以压缩文件的名字创建目标文件夹* @param   boolean  是否重写已经存在的文件** @return  boolean  返回成功 或失败*/public function unzip($src_file, $dest_dir=false, $create_zip_name_dir=true, $overwrite=true){if ($zip = zip_open($src_file)){if ($zip){$splitter = ($create_zip_name_dir === true) ? "." : "/";if($dest_dir === false){$dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";}// 如果不存在 创建目标解压目录$this->create_dirs($dest_dir);// 对每个文件进行解压while ($zip_entry = zip_read($zip)){// 文件不在根目录$pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");if ($pos_last_slash !== false){// 创建目录 在末尾带 /$this->create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));}// 打开包if (zip_entry_open($zip,$zip_entry,"r")){// 文件名保存在磁盘上$file_name = $dest_dir.zip_entry_name($zip_entry);// 检查文件是否需要重写if ($overwrite === true || $overwrite === false && !is_file($file_name)){// 读取压缩文件的内容$fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));@file_put_contents($file_name, $fstream);// 设置权限chmod($file_name, 0777);echo "save: ".$file_name."<br />";}// 关闭入口zip_entry_close($zip_entry);}}// 关闭压缩包zip_close($zip);}}else{return false;}return true;}/*** 创建目录*/public function create_dirs($path){if (!is_dir($path)){$directory_path = "";$directories = explode("/",$path);array_pop($directories);foreach($directories as $directory){$directory_path .= $directory."/";if (!is_dir($directory_path)){mkdir($directory_path);chmod($directory_path, 0777);}}}}}/*using:$z = new Unzip();$z->unzip("./bootstrap-3.3.4.zip",'./unzipres/', true, false);
*/

PHP 解压 ZIP 文件到指定文件夹相关推荐

  1. 文件夹打包成pkg_linux如何解压tar.gz到指定文件夹或目录

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解如何解压tar.gz到指定文件夹或目录,t ...

  2. 深度学习制作数据集的部分代码实现(解压zip、生成json文件)

    1.当数据集是压缩包时,需要解压成图片文件 import zipfile def unzip_data(src_path,target_path):'''解压原始数据集,将src_path路径下的zi ...

  3. java解压zip包_Java中文件的压缩与解压,每天进步一点点系列

    使用java.util.zip包,实现文件的压缩与解压,并提供了下载方法 注意 无论是调用createNewFile()创建文件,还是在创建输出流时由输出流负责创建文件,都必须保证父路径已经存在,否则 ...

  4. linux tar xvf 只解压 压缩包中的 指定文件,不解压所有文件

    查看压缩包 [yeqiang@harbor tmp]$ tar -tvf control.tar.xz drwxr-xr-x root/root 0 2021-03-18 09:43 ./ -rw-r ...

  5. linux解压zip同时重命名文件

    unzip a.zip 解压文件以a为文件名 unzip a.zip -d b 解压文件重命名为b

  6. php 解压zip到目录下,PHP解压ZIP压缩包到指定目录 | kTWO-个人博客

    /* * 解压文件 * 需开启配置 php_zip.dll * filename 要解压的文件全路径 * path 解压文件后保存路径 * 返回值 trur或者false * 作者:kTWO * 时间 ...

  7. 使用Python解压zip、rar文件

    解压 zip 文件 基本解压操作 import zipfile''' 基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]]) ...

  8. Android 解压zip文件你知道多少?

    对于Android常用的压缩格式ZIP,你了解多少? Android的有两种解压ZIP的方法,你知道吗? ZipFile和ZipInputStream的解压效率,你对比过吗? 带着以上问题,现在就开始 ...

  9. java 万能解压zip工具类

    项目中有需要解压zip包,但是网上搜了下,工具类过于局限,故整理一个万能的解压zip的工具类.如果大家有更好的方式欢迎交流! 工具类1: /*** 解压文件到指定目录** @param zipFile ...

  10. java读取zip文件名_java无需解压zip压缩包直接读取包内的文件名(含中文)

    java自带了java.util.zip工具可以实现在不解压zip压缩包的情况下读取包内文件的文件名:(注:只能是ZIP格式的,rar我试了不行)代码如下: public static String ...

最新文章

  1. 微软 Windows 10 物联网版系统 IoT 介绍 树莓派2 可以装一下
  2. 浅谈工程师的调试法宝(5) -JScope的应用_MCU
  3. 做了5年Java,java文件下载代码
  4. access实验报告体会_Access实验报告 - 图文
  5. 【linux】CMake Error in CMakeLists.txt: No CMAKE_CXX_COMPILER could be found.
  6. UNIX再学习 -- 进程关系
  7. SemSorGrid4Env
  8. Spring Boot Spring MVC 异常处理的N种方法 1
  9. python sqlserver 数据操作_python对Excel数据进行读写操作
  10. java 2d划线 刷子_月光软件站 - 编程文档 - Java - Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO 2D GRAPHICS)...
  11. 如何使Xcode占用更少的空间 Xcode占用空间太大解决方法
  12. TextTopicNet:CMU开源无标注高精度自监督模型
  13. Docker(四) Dockerfile 详解
  14. 图像块的访问(填充 padding,步长 stride,窗 Window/kernel/filter)
  15. LAMP架构调优(三)——模块的安装与调用
  16. 国内外优秀的源码网站
  17. 春暖花开php,春暖花开的朋友圈说说 开心的说说短句
  18. 转 GRE -- ME 似乎有件事,一直等待着我去做,努力去做。
  19. Excel学习 -- 数据透视表功能
  20. 截止失真放大电路_5.深入浅出:多级放大电路种类及动态分析

热门文章

  1. zend studio php配置,Zend Studio的配置和使用
  2. 计算机word英语词汇大全,计算机专业英语词汇缩写大全
  3. 联想m7400 linux驱动下载,联想M7400W驱动-联想M7400W打印机驱动下载 v1.6.0.0官方版--pc6下载站...
  4. SqList *L 和 SqList * L的一些理解以及多重指针的简单应用
  5. VSCode中文版快捷键
  6. sql语句练习50题(Mysql版)
  7. 2020网络安全NISP一级题库
  8. 微信UnionID的作用
  9. 如何给pdf文件自动添加目录和书签?
  10. 小米路由pro php,完全拆解小米路由器Pro:无接口,预加硬盘无望