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 session处理的定制
Mar 16 PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
php创建类并调用的实例方法
Sep 25 PHP
laravel接管Dingo-api和默认的错误处理方式
Oct 25 PHP
Laravel中获取IP的真实地理位置
Apr 01 PHP
PHP对接阿里云虚拟号的实现(号码隐私保护)
Apr 06 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文件读写操作之文件写入代码
2011/01/13 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
JavaScript 注册事件代码
2011/01/27 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
python线程池的实现实例
2013/11/18 Python
Python 异常处理的实例详解
2017/09/11 Python
Sanic框架配置操作分析
2018/07/17 Python
对python周期性定时器的示例详解
2019/02/19 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
Python collections模块使用方法详解
2019/08/28 Python
python 基于opencv实现图像增强
2020/12/23 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
村党支部换届选举方案
2014/05/02 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
总经理人事任命书
2014/06/05 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
初三语文教学计划
2015/01/22 职场文书
防卫过当辩护词
2015/05/21 职场文书
医院党建工作总结2015
2015/05/26 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
JavaScript流程控制(分支)
2021/12/06 Javascript
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript