php生成zip文件类实例

 更新时间:2015年04月07日 12:08:00   作者:不吃皮蛋  
这篇文章主要介绍了php生成zip文件类,实例分析了php操作zip文件的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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 session机制

    从手册去理解分析PHP session机制

    session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session是存放在文件中,PHP自身的垃圾回收是无效的,SESSION的回收是要删文件的,这个概率是根据php.ini的配置决定的
    2011-07-07
  • 理解php Hash函数,增强密码安全

    理解php Hash函数,增强密码安全

    服务器和数据库的资料偶尔会被窃取,因此需要保证发生这种情况时一些重要的用户数据,比如密码,是别人无法获取的。这里我们将要讨论Hash的原理,以及它是如何保护Web应用程序中的密码安全的。
    2011-02-02
  • php面向对象程序设计中self与static的区别分析

    php面向对象程序设计中self与static的区别分析

    这篇文章主要介绍了php面向对象程序设计中self与static的区别,结合实例形式分析了php面向对象程序设计中self与static的功能、以及在继承过程中实现多态的区别,并总结了static静态延迟绑定的原理,需要的朋友可以参考下
    2019-05-05
  • php ZipArchive实现多文件打包下载实例

    php ZipArchive实现多文件打包下载实例

    在本篇文章里我们给各位整理了关于php ZipArchive实现多文件打包下载实例以及相关代码,需要的朋友们可以学习下。
    2019-10-10
  • PHP new static 和 new self详解

    PHP new static 和 new self详解

    使用 self:: 或者 __CLASS__ 对当前类的静态引用,取决于定义当前方法所在的类:使用 static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。
    2017-02-02
  • PHP排序二叉树基本功能实现方法示例

    PHP排序二叉树基本功能实现方法示例

    这篇文章主要介绍了PHP排序二叉树基本功能实现方法,结合具体实例形式分析了PHP排序二叉树的定义、遍历、节点插入、查找等相关实现技巧,需要的朋友可以参考下
    2018-05-05
  • PHP高级编程之消息队列原理与实现方法详解

    PHP高级编程之消息队列原理与实现方法详解

    这篇文章主要介绍了PHP高级编程之消息队列原理与实现方法,结合实例形式详细分析了PHP消息队列相关概念、原理、使用场景及相关操作注意事项,需要的朋友可以参考下
    2020-01-01
  • PHP使用DOM和simplexml读取xml文档的方法示例

    PHP使用DOM和simplexml读取xml文档的方法示例

    这篇文章主要介绍了PHP使用DOM和simplexml读取xml文档的方法,结合实例形式分析了php使用DOM及simplxml针对xml文件的创建、载入、读取等相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • PHP数组对比函数,存在交集则返回真,否则返回假

    PHP数组对比函数,存在交集则返回真,否则返回假

    PHP数组对比函数,存在交集则返回真,否则返回假,需要的朋友可以参考下。
    2011-02-02
  • PHP中的闭包(匿名函数)浅析

    PHP中的闭包(匿名函数)浅析

    这篇文章主要介绍了PHP中的闭包(匿名函数)浅析,本文给出了一个使用实例和执行效率测试,需要的朋友可以参考下
    2015-02-02

最新评论