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连接Oracle for NT 远程数据库
Oct 09 PHP
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
php二分法在IP地址查询中的应用
Aug 12 PHP
php trim 去除空字符的定义与语法介绍
May 31 PHP
PHP基础之运算符的使用方法
Apr 28 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
Jun 12 PHP
php mb_substr()函数截取中文字符串应用示例
Jul 29 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
详解php中生成标准uuid(guid)的方法
Apr 28 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 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
在PWS上安装PHP4.0正式版
2006/10/09 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
Python中使用Inotify监控文件实例
2015/02/14 Python
整理Python中的赋值运算符
2015/05/13 Python
python3+PyQt5实现柱状图
2018/04/24 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
法律进社区实施方案
2014/03/21 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
大学生工作自荐书
2014/06/16 职场文书
爱情保证书
2015/01/17 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
小学班主任工作随笔
2015/08/15 职场文书
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js