As this is not directly available from this page, here's the meaning of the two flags:
ZIPARCHIVE::FL_NOCASE
Ignore case on name lookup
ZIPARCHIVE::FL_NODIR
Ignore directory component
All defined constants can be found here : http://php.net/manual/en/zip.constants.php
ZipArchive::locateName
(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
ZipArchive::locateName — Returns the index of the entry in the archive
Description
int ZipArchive::locateName
( string
$name
[, int $flags
] )Locates an entry using its name.
Parameters
-
name -
The name of the entry to look up
-
flags -
The flags are specified by ORing the following values, or 0 for none of them.
-
ZipArchive::FL_NOCASE -
ZipArchive::FL_NODIR
-
Return Values
Returns the index of the entry on success or FALSE on failure.
Examples
Example #1 Create an archive and then use it with ZipArchive::locateName()
<?php
$file = 'testlocate.zip';
$zip = new ZipArchive;
if ($zip->open($file, ZipArchive::CREATE) !== TRUE) {
exit('failed');
}
$zip->addFromString('entry1.txt', 'entry #1');
$zip->addFromString('entry2.txt', 'entry #2');
$zip->addFromString('dir/entry2d.txt', 'entry #2');
if (!$zip->status == ZipArchive::ER_OK) {
echo "failed to write zip\n";
}
$zip->close();
if ($zip->open($file) !== TRUE) {
exit('failed');
}
echo $zip->locateName('entry1.txt') . "\n";
echo $zip->locateName('eNtry2.txt') . "\n";
echo $zip->locateName('eNtry2.txt', ZipArchive::FL_NOCASE) . "\n";
echo $zip->locateName('enTRy2d.txt', ZipArchive::FL_NOCASE|ZipArchive::FL_NODIR) . "\n";
$zip->close();
?>
The above example will output:
0 1 2
thedotwriter ¶
8 months ago
me at nowhere dot com ¶
4 years ago
If the option ZIPARCHIVE::FL_NODIR is used, the result may be ambiguous as files with the same name may occur in various directories. In this case, the first occurence in the index whoose name matches is returned.
E.g.
<?php
$zip->addFromString('afile.txt', 'index 0');
$zip->addFromString('double.txt', 'index 1');
$zip->addFromString('dir/double.txt', 'index 2');
?>
$zip->locateName('double.txt',ZIPARCHIVE::FL_NODIR) returns 1
