加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php 生成zip文件的类的简单示例

发布时间:2020-05-25 04:59:57 所属栏目:PHP 来源:互联网
导读:php 生成zip文件的类的简单示例

感兴趣的小伙伴,下面一起跟随脚本之家 jb51.cc的小编来看看吧。
经测试代码如下:


<?php
/**
 * 生成zip文件类
 *
 * @param 
 * @arrange (512.笔记) jb51.cc
 **/
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
}



/*** 来自:脚本之家 jb51.cc(jb51.cc) ***/ 
?>

(编辑:安卓应用网)

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

    推荐文章
      热点阅读