PHP 解压 ZIP 文件到指定文件夹
本类实现参考 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 文件到指定文件夹相关推荐
- 文件夹打包成pkg_linux如何解压tar.gz到指定文件夹或目录
请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解如何解压tar.gz到指定文件夹或目录,t ...
- 深度学习制作数据集的部分代码实现(解压zip、生成json文件)
1.当数据集是压缩包时,需要解压成图片文件 import zipfile def unzip_data(src_path,target_path):'''解压原始数据集,将src_path路径下的zi ...
- java解压zip包_Java中文件的压缩与解压,每天进步一点点系列
使用java.util.zip包,实现文件的压缩与解压,并提供了下载方法 注意 无论是调用createNewFile()创建文件,还是在创建输出流时由输出流负责创建文件,都必须保证父路径已经存在,否则 ...
- linux tar xvf 只解压 压缩包中的 指定文件,不解压所有文件
查看压缩包 [yeqiang@harbor tmp]$ tar -tvf control.tar.xz drwxr-xr-x root/root 0 2021-03-18 09:43 ./ -rw-r ...
- linux解压zip同时重命名文件
unzip a.zip 解压文件以a为文件名 unzip a.zip -d b 解压文件重命名为b
- php 解压zip到目录下,PHP解压ZIP压缩包到指定目录 | kTWO-个人博客
/* * 解压文件 * 需开启配置 php_zip.dll * filename 要解压的文件全路径 * path 解压文件后保存路径 * 返回值 trur或者false * 作者:kTWO * 时间 ...
- 使用Python解压zip、rar文件
解压 zip 文件 基本解压操作 import zipfile''' 基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]]) ...
- Android 解压zip文件你知道多少?
对于Android常用的压缩格式ZIP,你了解多少? Android的有两种解压ZIP的方法,你知道吗? ZipFile和ZipInputStream的解压效率,你对比过吗? 带着以上问题,现在就开始 ...
- java 万能解压zip工具类
项目中有需要解压zip包,但是网上搜了下,工具类过于局限,故整理一个万能的解压zip的工具类.如果大家有更好的方式欢迎交流! 工具类1: /*** 解压文件到指定目录** @param zipFile ...
- java读取zip文件名_java无需解压zip压缩包直接读取包内的文件名(含中文)
java自带了java.util.zip工具可以实现在不解压zip压缩包的情况下读取包内文件的文件名:(注:只能是ZIP格式的,rar我试了不行)代码如下: public static String ...
最新文章
- 微软 Windows 10 物联网版系统 IoT 介绍 树莓派2 可以装一下
- 浅谈工程师的调试法宝(5) -JScope的应用_MCU
- 做了5年Java,java文件下载代码
- access实验报告体会_Access实验报告 - 图文
- 【linux】CMake Error in CMakeLists.txt: No CMAKE_CXX_COMPILER could be found.
- UNIX再学习 -- 进程关系
- SemSorGrid4Env
- Spring Boot Spring MVC 异常处理的N种方法 1
- python sqlserver 数据操作_python对Excel数据进行读写操作
- java 2d划线 刷子_月光软件站 - 编程文档 - Java - Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO 2D GRAPHICS)...
- 如何使Xcode占用更少的空间 Xcode占用空间太大解决方法
- TextTopicNet:CMU开源无标注高精度自监督模型
- Docker(四) Dockerfile 详解
- 图像块的访问(填充 padding,步长 stride,窗 Window/kernel/filter)
- LAMP架构调优(三)——模块的安装与调用
- 国内外优秀的源码网站
- 春暖花开php,春暖花开的朋友圈说说 开心的说说短句
- 转 GRE -- ME 似乎有件事,一直等待着我去做,努力去做。
- Excel学习 -- 数据透视表功能
- 截止失真放大电路_5.深入浅出:多级放大电路种类及动态分析
热门文章
- zend studio php配置,Zend Studio的配置和使用
- 计算机word英语词汇大全,计算机专业英语词汇缩写大全
- 联想m7400 linux驱动下载,联想M7400W驱动-联想M7400W打印机驱动下载 v1.6.0.0官方版--pc6下载站...
- SqList *L 和 SqList * L的一些理解以及多重指针的简单应用
- VSCode中文版快捷键
- sql语句练习50题(Mysql版)
- 2020网络安全NISP一级题库
- 微信UnionID的作用
- 如何给pdf文件自动添加目录和书签?
- 小米路由pro php,完全拆解小米路由器Pro:无接口,预加硬盘无望