note 105989 added to ref.zip
| From: | shadowbranch at gmail dot com | 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