mirror of
https://github.com/php/php-src.git
synced 2024-11-25 19:05:31 +08:00
Closes bug #47667
This commit is contained in:
parent
39988315e0
commit
5645de756d
@ -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:
|
||||
|
40
ext/zip/tests/bug47667.phpt
Normal file
40
ext/zip/tests/bug47667.phpt
Normal 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
|
Loading…
Reference in New Issue
Block a user