This class implements the reference PHP manual comment
/** * Function: Unzip file in ZIP format * author:friker * date:2015-15-14 * reference:http://php.net/manual/zh/ref.zip.php * All Rights reserved:[email protected] */class unzip{public Function __construct () {//init code here ... Heade R ("Content-type:text/html;charset=utf8"); /*** unzip the file to the specified directory * * @param the path of a string zip compressed file * @param the destination path of a string decompression file * @param boolean to create the destination folder with the name of the compressed file * @para M Boolean whether to overwrite files that already exist * * @return Boolean to return success or failure */Public Function unzip ($src _file, $dest _dir=false, $create _zip_na Me_dir=true, $overwrite =true) {if ($zip = Zip_open ($src _file)) {if ($zip) {$splitter = ($create _zip_n Ame_dir = = = True)? "." : "/"; if ($dest _dir = = = False) {$dest _dir = substr ($src _file, 0, Strrpos ($src _file, $splitter)). " /"; }//If there is no create target extract directory $this->create_dirs ($dest _dir); Unzip each file while ($zip _entry = Zip_read ($zip)) {//The file is not in the root directory $pos_last_slash = Strrpos (Zip_entry_name ($zip_entry), "/"), if ($pos _last_slash!== false) {//Create directory at the end with/$this->create_dirs ($dest _dir.substr (Zip_entry_name ($zip _entry), 0, $pos _last_slash+1));} Open Package if (Zip_entry_open ($zip, $zip _entry, "R")) {//file name is saved on disk $file _name = $dest _dir.zip_entry_name ($zip _entry); Check if the file needs to override if ($overwrite = = = True | | $overwrite = = = False &&!is_file ($file _name)) { Reads the contents of the compressed file $fstream = Zip_entry_read ($zip _entry, Zip_entry_filesize ($ Zip_entry)); @file_put_contents ($file _name, $fstream); Set Permissions chmod ($file _name, 0777); echo "Save:". $file _name. " <br/> "; }//Close the entrance zip_entry_close ($zip _entry); } } Close the compression pack zip_close ($zip); }}else{return false; } return true; }/*** Create directory */public function Create_dirs ($path) {if (!is_dir ($path)) {$directory _path = ""; $directories = Explode ("/", $path); Array_pop ($directories); foreach ($directories as $directory) {$directory _path. = $directory. " /"; if (!is_dir ($directory _path)) {mkdir ($directory _path); chmod ($directory _path, 0777); }}}}}/* using: $z = new Unzip (); $z->unzip ("./bootstrap-3.3.4.zip", './unzipres/', true, false); */
PHP Unzip the ZIP file to the specified folder