php生成zip文件类实例
author:一佰互联 2019-04-28   click:154

本文实例讲述了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程序设计有所帮助。