note 48142 added to ref.zip
| From: | schore at NOSPAM dot hotmail dot com | Date: | Mon, 13 Dec 2004 18:55:45 +0000 |
| Subject: | note 48142 added to ref.zip | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-81762@lists.php.net to get a copy of this message | ||
I have had problems with the function of kristiankjaer to unpack zipfiles within any directories.
So I wrote a little extension.
<?php
function unpackZip($dir,$file) {
if ($zip = zip_open($dir.$file.".zip")) {
if ($zip) {
mkdir($dir.$file);
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip,$zip_entry,"r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$dir_name = dirname(zip_entry_name($zip_entry));
if ($dir_name != ".") {
$dir_op = $dir.$file."/";
foreach ( explode("/",$dir_name) as $k) {
$dir_op = $dir_op . $k;
if (is_file($dir_op)) unlink($dir_op);
if (!is_dir($dir_op)) mkdir($dir_op);
$dir_op = $dir_op . "/" ;
}
}
$fp=fopen($dir.$file."/".zip_entry_name($zip_entry),"w");
fwrite($fp,$buf);
zip_entry_close($zip_entry);
} else
return false;
}
zip_close($zip);
}
} else
return false;
return true;
}
?>
----
Manual Page -- http://www.php.net/manual/en/ref.zip.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+48142
Delete -- http://master.php.net/manage/user-notes.php?action=delete+48142&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+48142&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+48142&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+48142&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+48142&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+48142&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+48142&report=yes
Search -- http://master.php.net/manage/user-notes.php