/*

* new creatZip($_dir,$_zipName);

*@ _dir是被压缩的文件夹名称,可使用路径,例 'a'或者'a/test.txt'或者'test.txt'

*@ _zipName是压缩后的压缩包名称,可使用路径,例 'a/test.zip'或者'test.zip'

**/

class creatZip {

private $_dir;

private $_zipDir;

private $_zipName;

public function __construct($dir,$zipName) {

$this->_dir = $dir;

$this->_zipDir = basename($dir);

$this->_zipName = $zipName;

$this->mkdirs();

$this->creat();

}

//检测并生成目录

private function mkdirs() {

if (!is_dir(dirname($this->_zipName))) {

$arr = explode('/', dirname($this->_zipName));

$arrs = '';

foreach($arr as $value) {

if (!is_dir($arrs.$value)) {

if (!!mkdir($arrs.$value)) {

$arrs .= $value.'/';

}

}

}

}

}

//生成Zip压缩包

private function creat() {

$zip = new ZipArchive;

if (is_dir($this->_dir)) {

$this->readDir($this->_dir,$files);

if ($zip->open($this->_zipName,ZipArchive::CREATE)) {

foreach ($files as $value) {

preg_match('//('.$this->_zipDir.'/.*)/', $value, $match);

if (is_dir($value)) {

@$zip->addEmptyDir($value, $match[1]);

} else {

@$zip->addFile($value, $match[1]);

}

}

$zip->close();

}

} else {

if ($zip->open($this->_zipName,ZipArchive::CREATE)) {

$zip->addFile($this->_dir, basename($this->_dir));

}

}

}

//读取文件夹所有文件

private function readDir($dir,&$arr) {

if ($dirs = opendir($dir)) {

while (($file=readdir($dirs)) != false) {

if ($file == '.' || $file == '..') continue;

$files = $dir .'/'. $file;

if (is_dir($files) && $this->isEmpty($files)) {

$this->readDir($files,$arr);

} else {

$arr[] = $files;

}

}

}

closedir($dirs);

}

//判断文件夹是否为空

private function isEmpty($dir) {

if ($_dirs = opendir($dir)) {

while (($file=readdir($dirs)) != false) {

if($file != '.' && $file != '..') {

closedir($dirs);

return true;

break;

}

}

closedir($dirs);

return false;

}

}

}

以上就介绍了php生成zip压缩文件的方法,支持文件和压缩包路径查找,包括了读取文件方面的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

相关文章:

使用php生成zip压缩文件的方法附详细代码

php实现在线解压zip压缩文件

简单的php创建zip压缩文件的方法 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

php创建压缩文件 保存路径,通过php生成zip压缩文件,支持文件和压缩包路径查找...相关推荐

  1. Linux中压缩和解压(gzip压缩/gunzip解压)(zip压缩/unzip解压)(tar打包解压)

    文章目录 Linux中压缩和解压(gzip压缩/gunzip解压)(zip压缩/unzip解压)(tar打包解压) 一.gzip压缩 / gunzip解压 1.命令 2.注意 3.案例 4.常用 二. ...

  2. dos 压缩 %3c html%3e,dos下生成zip压缩文件

    使用winzip命令行对文件打包压缩 大家都知道winzip对文件解压和压缩都易如反掌,但是如何通过程序和命令行对其调用呢? 去 下载dos版的winzip,下载后直接安装,就会在winzip的目录中 ...

  3. linux文件下生成一个文件,Linux系统下生成一个指定大小的文件要注意什么?

    在装系统,因此在这里随便记点东西. 从前与经理讨论NVR项目的时候,他提到要预先将用户指定好的磁盘空间预留出来,这是比较容易实现的功能.不容易实现的是自己写一个文件系统,这种方法我是不太敢照量啊,不过 ...

  4. php生成文件index.html,Typecho生成静态首页index.html文件

    Typecho生成静态首页index.html文件 作者:佚名 来源:爱好者 时间:2019-11-02 在挨踢路看到的教程,不仅仅适用于Typecho,wordpress也是可以通用. 教程 在网站 ...

  5. Qt-qrc资源文件-rcc打包-程序调用-ZIP压缩和解压-安装程序制作参考

    文章目录 1.qrc文件编辑 2.将qrc文件转位rcc 3.资源使用 4.ZIP压缩和解压 4.1.解压 4.2.压缩 5.错误 6.作者答疑 将程序的资源文件打包在程序的应用程序内,能够使程序保持 ...

  6. linux中用zip压缩文件,详解Linux中zip压缩和unzip解压缩命令及使用详解

    下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩myda ...

  7. python压缩文件操作_Python tar、zip压缩文件操作方法

    python语言源码练习,tar.zip压缩文件操作方法参考示例. import os import threading, zipfile import tarfile class AsyncZip( ...

  8. php 蓝奏网盘上传文件,蓝奏云盘客户端v2.6 支持文件夹和大文件上传了

    首先来份哈勃检测:https://habo.qq.com/file/showdetail?pk=ADcGZ11vB28IOVs6U2U%3D 软件MD5:5bb1f50860b2e626ccda17e ...

  9. php 创建zip,php生成zip压缩文件的实例详解

    操作步骤: 1,下载zip.php工具类,解压,将文件放到相关目录,比如这里放加include目录中. 2,在php程序中,引入代码: require_once "./include/zip ...

最新文章

  1. SystemCenter2012SP1实践(31)P2V迁移故障一则
  2. 栈空间不够会报错吗_网站更换域名和空间会对优化有影响吗?
  3. 【Linux系统编程】进程间通信--无名管道(pipe)
  4. Linux按键输入实验(体验一下输入驱动,实际开发使用input子系统处理)
  5. 获取table控件的某行某列
  6. Paste for mac(剪切板管理工具)
  7. SQL:postgresql点geom转换为经纬度、POINT
  8. 2018-2019-2 20165206《网络对抗技术》Exp1 PC平台逆向破解
  9. 2021信创产业分类排行
  10. 图论及其应用 2007年期末考试答案 总结
  11. Windows XP SP3 VOL 简体中文正式版 V201106
  12. 2022钉钉发布会|云钉低代码新模式、新能力、新机遇
  13. 0起步的摄影初学笔记
  14. hdu 1205 吃糖果 抽屉原理
  15. Git三板斧【linux环境】
  16. ElastaticSearch----top_hits,es获取聚合的相关文档结果
  17. 用途相似的标签:cite,q与blockquote
  18. 利用pygame实现人人对弈五子棋(有其他相关功能)
  19. mysql sqlserver 拷贝_SQLServer复制搭建过程
  20. 芒果TV的金融野心从未停止

热门文章

  1. 制造企业数字化转型的这些大坑不避开,上岸有点悬!
  2. 国产美瞳频获融资背后:“小”美瞳的“大”生意经?
  3. 遭遇“长租杀熟”,95后蜗居的长租公寓未来也是“扑朔迷离”?
  4. 注定一爆就完的ZAO ,为什么只是一剂社交毒药?
  5. linux中jpg文件,Linux下压缩和优化jpg与png图片的方法
  6. 连接失败_iG.Firefox连接失败?iG新赛季仍未敲定主教练人选
  7. 仿射变换 c语言,c语言数字图像处理(三):仿射变换
  8. matlab绘图z=sin(x_「matlab画三维图」Matlab 应用之绘制三维图形(基础篇) - seo实验室...
  9. ci框架mysql多条件_CI框架同时连接不同的数据库(或不同表前缀)
  10. python 将字符串作为变量名