note 105989 added to ref.zip

From: Date: Fri, 30 Sep 2011 12:40:42 +0000
Subject: note 105989 added to ref.zip
Groups: php.notes 
Request: Send a blank email to php-notes+get-183540@lists.php.net to get a copy of this message
This is the simplest method to unzip a file. Pass the function your filename and it will unzip it to the current directory of the script with permissions done properly on unix type operating systems. Far simpler to understand and read. function unzip($file){ $zip = zip_open($file); if(is_resource($zip)){ $tree = ""; while(($zip_entry = zip_read($zip)) !== false){ echo "Unpacking ".zip_entry_name($zip_entry)."\n"; if(strpos(zip_entry_name($zip_entry), DIRECTORY_SEPARATOR) !== false){ $last = strrpos(zip_entry_name($zip_entry), DIRECTORY_SEPARATOR); $dir = substr(zip_entry_name($zip_entry), 0, $last); $file = substr(zip_entry_name($zip_entry), strrpos(zip_entry_name($zip_entry), DIRECTORY_SEPARATOR)+1); if(!is_dir($dir)){ @mkdir($dir, 0755, true) or die("Unable to create $dir\n"); } if(strlen(trim($file)) > 0){ $return = @file_put_contents($dir."/".$file, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry))); if($return === false){ die("Unable to write file $dir/$file\n"); } } }else{ file_put_contents($file, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry))); } } }else{ echo "Unable to open zip file\n"; } } ---- Server IP: 208.69.120.55 Probable Submitter: 199.222.128.250 ---- Manual Page -- http://www.php.net/manual/en/ref.zip.php Edit -- https://master.php.net/note/edit/105989 Del: integrated -- https://master.php.net/note/delete/105989/integrated Del: useless -- https://master.php.net/note/delete/105989/useless Del: bad code -- https://master.php.net/note/delete/105989/bad+code Del: spam -- https://master.php.net/note/delete/105989/spam Del: non-english -- https://master.php.net/note/delete/105989/non-english Del: in docs -- https://master.php.net/note/delete/105989/in+docs Del: other reasons-- https://master.php.net/note/delete/105989 Reject -- https://master.php.net/note/reject/105989 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#183540) next »