加入收藏 | 设为首页 | 会员中心 | 我要投稿 荆门站长网 (https://www.0724zz.cn/)- 图像技术、建站、AI硬件、智能营销、数据搜素!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php生成zip文件类实例

发布时间:2022-06-21 09:47:46 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php生成zip文件类,实例分析了php操作zip文件的技巧,非常具有实用价值,需要的朋友可以参考下。 本文实例讲述了php生成zip文件类,分享给大家供大家参考,具体如下: ?php /* By: Matt Ford Purpose: Basic class to create zipfiles */ cla
  这篇文章主要介绍了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
  }
  ?>

(编辑:荆门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读