This commit is contained in:
Mikko Koppanen 2009-03-16 10:19:43 +00:00
parent 39988315e0
commit 5645de756d
2 changed files with 43 additions and 0 deletions

View File

@ -66,6 +66,9 @@ zip_open(const char *fn, int flags, int *zep)
int i;
off_t len;
if (flags & ZIP_OVERWRITE) {
return _zip_allocate_new(fn, zep);
}
switch (_zip_file_exists(fn, flags, zep)) {
case -1:

View File

@ -0,0 +1,40 @@
--TEST--
Bug #47667 (ZipArchive::OVERWRITE seems to have no effect)
--SKIPIF--
<?php
/* $Id$ */
if(!extension_loaded('zip')) die('skip');
?>
--FILE--
<?php
$thisdir = dirname(__FILE__);
$filename = $thisdir . "/bug47667.zip";
$zip = new ZipArchive();
if ($zip->open($filename, ZipArchive::CREATE) !== true) {
exit("Unable to open the zip file");
} else {
$zip->addFromString('foo.txt', 'foo bar foobar');
$zip->close();
}
for ($i = 0; $i < 10; $i++) {
$zip = new ZipArchive();
if ($zip->open($filename, ZipArchive::OVERWRITE) !== true) {
exit("Unable to open the zip file");
}
$zip->addFromString("foo_{$i}.txt", 'foo bar foobar');
$zip->close();
}
$zip = new ZipArchive();
if ($zip->open($filename, ZipArchive::CREATE) !== true) {
exit("Unable to open the zip file");
}
echo "files: " , $zip->numFiles;
unlink($filename);
--EXPECT--
files: 1