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版(1)
Oct 09 PHP
php 什么是PEAR?(第二篇)
Mar 19 PHP
队列在编程中的实际应用(php)
Sep 04 PHP
php json_encode奇怪问题说明
Sep 27 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
PHP的PDO连接讲解
2019/01/24 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
Python中的连接符(+、+=)示例详解
2017/01/13 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
CAD制图设计师自荐信
2014/01/29 职场文书
安全口号大全
2014/06/21 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
计划生育工作汇报
2014/10/28 职场文书
文明家庭事迹材料
2014/12/20 职场文书
支教个人总结
2015/03/04 职场文书
教师创先争优承诺书
2015/04/27 职场文书
小学工作总结2015
2015/05/04 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
交通安全学习心得体会
2016/01/18 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书