php生成zip文件类实例

5年以前  |  阅读数:386 次  |  编程语言:PHP 

本文实例讲述了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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例