This article mainly introduces the zip file class generated by php. The example analyzes the skills of php operating zip files. It is of great practical value. Friends in need can refer to it.
The example of this article describes the generation of zip files by php. kind. Share it with everyone for your reference. The details are as follows:
<?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 } ?>
The above is the detailed content of Detailed explanation of PHP generated zip file class instance. For more information, please follow other related articles on the PHP Chinese website!