文章来源:http://www.cnblogs.com/hello-tl/p/7661222.html

  1. <?php
  2.  
  3. # 文件字符集
  4. header("Content-type: text/html; charset=utf-8");
  5.  
  6. class TL_ZIP{
  7. # web 跟
  8. private $TL_ROOT;
  9.  
  10. # zip包 目录
  11. private $TL_DOWNLOAD;
  12.  
  13. # zip文件名
  14. private $TL_zipName;
  15.  
  16. public function __construct(){
  17. # 设置web根目录
  18. $this->TL_ROOT = str_replace("\\", '/', dirname(__FILE__) . "/");
  19.  
  20. # 设置zip目录
  21. $this->TL_DOWNLOAD = str_replace("\\", '/', dirname(__FILE__)) . "/DOWNLOAD/";
  22. }
  23.  
  24. # 设置 压缩包名称
  25. public function getZipName($zipName){
  26. # 判断一下文件名是否合法
  27. $this->TL_zipName = $this->TL_DOWNLOAD . $zipName . ".zip";
  28. return true;
  29. }
  30.  
  31. # 获取 压缩包名称
  32. public function setZipName(){
  33. return $this->TL_zipName;
  34. }
  35.  
  36. # 生成压缩包
  37. public function createZip($arrFiles){
  38. # 判断是否是数组
  39. if(!is_array($arrFiles)){
  40. return false;
  41. }
  42.  
  43. # 判断是否设置文件名 如果没有设定文件名 我就自己生成一个 哼!!!!
  44. if(!$this->TL_zipName){
  45. $this->TL_zipName = $this->TL_DOWNLOAD . date('YmdHis') . rand(111111111,999999999) . ".zip";
  46. }
  47.  
  48. # 定义zip文件名
  49. $zipName = $this->TL_zipName;
  50.  
  51. # 调用zip类
  52. $zipClass = new ZipArchive();
  53. if($zipClass->open($zipName, ZIPARCHIVE::CREATE) !== TRUE) {
  54. return false;
  55. }
  56. foreach($arrFiles as $path){
  57.  
  58. # 判断是否是文件
  59. if(is_file($this->TL_ROOT.$path)){
  60.  
  61. # 把文件加入到压缩包中
  62. $zipClass->addFile($this->TL_ROOT.$path, basename($this->TL_ROOT.$path));
  63. }
  64. }
  65. $zipClass->close();
  66. return $zipName;
  67. }
  68. }
  69.  
  70. $zipObj = new TL_ZIP();
  71. $zipObj->createZip(
  72. array(
  73. '从设定的跟目录开始写文件地址',
  74. '从设定的跟目录开始写文件地址',
  75. '从设定的跟目录开始写文件地址'
  76. )
  77. );

文章来源:http://www.cnblogs.com/hello-tl/p/7661222.html

PHP:压缩 Zip的更多相关文章

  1. 在线压缩zip

    <?php //验证密码 $password = "test"; ?> <html> <head> <meta http-equiv=&q ...

  2. java zip API实现压缩和解压缩zip包

    package zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io ...

  3. Linux中解压、压缩 ZIP文件

    解压 unzip -o -d /home/v-gazh myfile.zip # 把myfile.zip文件解压到 /home/v-gazh/ # -o:不提示的情况下覆盖文件: # -d:-d /h ...

  4. Linux下的压缩zip,解压缩unzip命令详解及实例

    实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ====================== ...

  5. asp.net 文件压缩zip下载

     今天分享下昨天做的一个东西 asp.net 的文件  zip 批量下载,首先你需要去 到http://dotnetzip.codeplex.com这个站点下载zip 的包,在里面找到 Ionic.Z ...

  6. C# .NET 使用第三方类库DotNetZip解压/压缩Zip rar文件

    DotNetZip on CodePlex: http://dotnetzip.codeplex.com/ 详细的可以看源代码……总之感觉比SharpZipLib好用.而且DotNetZip支持VB, ...

  7. 【转】ubuntu下解压缩zip,tar,tar.gz和tar.bz2文件

    原文网址:http://blog.sina.com.cn/s/blog_5da93c8f0101h1uj.html 在Linux下面如何去压缩文件或者目录呢? 在这里我们将学习zip, tar, ta ...

  8. Linux下的压缩zip,解压缩unzip命令具体解释及实例

    实例:压缩server上当前文件夹的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前文件夹 unzip filename.zip ================= ...

  9. java压缩zip文件中文乱码问题(转——作者:riching)

    本人遇到了同样的问题,用了以下方案,奇迹般的解决了.我很纳闷为什么,经理说:好读书,不求甚解,不要问为什么... 用java来打包文件生成压缩文件,有两个地方会出现乱码 1.内容的中文乱码问题,这个问 ...

  10. POI导出大量数据的简单解决方案(附源码)-Java-POI导出大量数据,导出Excel文件,压缩ZIP(转载自iteye.com)

    说明:我的电脑 2.0CPU 2G内存 能够十秒钟导出 20W 条数据 ,12.8M的excel内容压缩后2.68M 我们知道在POI导出Excel时,数据量大了,很容易导致内存溢出.由于Excel ...

随机推荐

  1. bzoj 3675: [Apio2014]序列分割【斜率优化dp】

    首先看这个得分方式,容易发现就相当于分k段,每段的值和两两乘起来. 这样就很容易列出dp方程:设f[i][j]为到j分成分成i段,转移是 \[ f[i][j]=max { f[k][j]+s[k]*( ...

  2. bzoj 4176: Lucas的数论【莫比乌斯反演+杜教筛】

    首先由这样一个结论: \[ d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1] \] 然后推反演公式: \[ \sum_{i=1}^{n}\sum_{j=1}^{n}\su ...

  3. bzoj4758: [Usaco2017 Jan]Subsequence Reversal(区间dp)

    4758: [Usaco2017 Jan]Subsequence Reversal Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 76  Solved ...

  4. SQL 实战教程(八)

    http://www.studyofnet.com/news/247.html 1.修改字段为自增 alter table [dbo].[Logs] drop column ID alter tabl ...

  5. NOIP-2018

    时隔一年,再度踏入NOIp的考场,内心感慨万分 Day0 在中巴上昏睡了3h++,终于到了长沙理工大学,国际学术交流中心......不太对,好像是国际交流中心与综合实验楼连线--理工大学的另一个大门外 ...

  6. 比较C#中几种常见的复制字节数组方法的效率[转]

    [原文链接] 在日常编程过程中,我们可能经常需要Copy各种数组,一般来说有以下几种常见的方法:Array.Copy,IList<T>.Copy,BinaryReader.ReadByte ...

  7. jmeter(九)分布式测试

    Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具 ...

  8. 自学 iOS - 三十天三十个 Swift 项目 第三天

    做了这个小demo 之后  感觉OC 和swift 还是有很大的差别的 自己还是要去多看些swift的语法 用的不是很熟练 1.这个demo 的资源文件 我都是用原工程的 2.同样的自定义cell 的 ...

  9. [ USACO 2013 OPEN ] Photo

    \(\\\) Description 有一个长度为 \(n\) 的奶牛队列,奶牛颜色为黑或白. 现给出 \(m\) 个区间 \([L_i,R_i]\) ,要求:每个区间里 有且只有一只黑牛 . 问满足 ...

  10. Redux中的异步操作

    异步操作的另一种方案就是让Action Creator返回一个Promise对象. 我们这边使用  redux-promise  中间件 import { createStore, applyMidd ...