php生成zip文件类实例


Posted in PHP onApril 07, 2015

本文实例讲述了php生成zip文件类。分享给大家供大家参考。具体如下:

<?php
 /*
  By:   Matt Ford
  Purpose: Basic class to create zipfiles
 */
class zipFile {
 public $files = array();
 public $settings = NULL;
 public $fileInfo = array (
   "name" => "",
   "numFiles" => 0,
   "fullFilePath" => ""
  );
 private $fileHash = "";
 private $zip = "";
 public function __construct($settings) {
  $this->zipFile($settings);
 }
 public function zipFile($settings) {
  $this->zip = new ZipArchive();
  $this->settings = new stdClass();
  foreach ($settings as $k => $v) {
   $this->settings->$k = $v;
  }
 }
 public function create() {
  $this->fileHash = md5(implode(",", $this->files));
  $this->fileInfo["name"] = $this->fileHash . ".zip";
  $this->fileInfo["numFiles"] = count($this->files);
  $this->fileInfo["fullFilePath"] = $this->settings->path . 
  "/" . $this->fileInfo["name"];
  if (file_exists($this->fileInfo["fullFilePath"])) {
   return array (
     false,
     "already created: " . $this->fileInfo["fullFilePath"]
     );
  }
  else {
   $this->zip->open($this->fileInfo["fullFilePath"], ZIPARCHIVE::CREATE);
   $this->addFiles();
   $this->zip->close();
   return array (
     true,
     "new file created: " . $this->fileInfo["fullFilePath"]
     );
  }
 }
 private function addFiles() {
  foreach ($this->files as $k) {
   $this->zip->addFile($k, basename($k));
  }
 }
}
$settings = array (
  "path" => dirname(__FILE__)
 );
$zipFile = new zipFile($settings);
$zipFile->files = array (
  "./images/navoff.jpg",
  "./images/navon.jpg"
 );
list($success, $error) = $zipFile->create();
if ($success === true) {
 //success
}
else {
 //error because: $error
}
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
最令PHP初学者头痛的十四个问题
Jul 12 PHP
判断是否为指定长度内字符串的php函数
Feb 16 PHP
PHP array_flip() 删除重复数组元素专用函数
May 16 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
php生成图片缩略图的方法
Apr 07 #PHP
Nginx下配置codeigniter框架方法
Apr 07 #PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 #PHP
php修改文件上传限制方法汇总
Apr 07 #PHP
windows下安装php的memcache模块的方法
Apr 07 #PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 #PHP
php获取网页里所有图片并存入数组的方法
Apr 06 #PHP
You might like
PHP中的日期加减方法示例
2014/08/21 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
javascript 常用代码技巧大收集
2009/02/25 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
Python交换变量
2008/09/06 Python
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python操作MongoDB详解及实例
2017/05/18 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
详解python中的线程与线程池
2019/05/10 Python
python ETL工具 pyetl
2020/06/07 Python
统计每一学生的平均成绩
2014/06/06 面试题
税务职业生涯规划书范文
2014/09/16 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书