forked from php/php-src
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoo_getstreamindex.phpt
70 lines (60 loc) · 1.39 KB
/
oo_getstreamindex.phpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
--TEST--
ZipArchive::getStreamIndex / ZipArchive::getName
--EXTENSIONS--
zip
--FILE--
<?php
$name = __DIR__ . '/getstream.zip';
$zip = new ZipArchive;
$r = $zip->open($name, ZIPARCHIVE::CREATE);
$zip->addFromString('foo.txt', 'foo');
$zip->addFromString('bar.txt', 'bar');
$zip->close();
$r = $zip->open($name);
$zip->addFromString('bar.txt', 'baz', ZipArchive::FL_OVERWRITE);
echo "== Name\n";
$fp = $zip->getStreamName('foo.txt');
var_dump($zip->status);
var_dump(stream_get_contents($fp));
$zip->clearError();
fclose($fp);
echo "== Index\n";
$fp = $zip->getStreamIndex(0);
var_dump($zip->status);
var_dump(stream_get_contents($fp));
$zip->clearError();
fclose($fp);
echo "== Index, changed\n";
$fp = $zip->getStreamIndex(1);
if (version_compare(ZipArchive::LIBZIP_VERSION, "1.10.0", "<")) {
/* not supported in old version */
var_dump($zip->status === ZipArchive::ER_CHANGED);
} else {
var_dump($zip->status === 0 && stream_get_contents($fp) === "baz");
}
$zip->clearError();
echo "== Index, unchanged\n";
$fp = $zip->getStreamIndex(1, ZipArchive::FL_UNCHANGED);
var_dump($zip->status === 0 && stream_get_contents($fp) === "bar");
$zip->clearError();
fclose($fp);
$zip->close();
?>
== Done
--CLEAN--
<?php
$name = __DIR__ . '/getstream.zip';
@unlink($name);
?>
--EXPECTF--
== Name
int(0)
string(3) "foo"
== Index
int(0)
string(3) "foo"
== Index, changed
bool(true)
== Index, unchanged
bool(true)
== Done