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 — Retourne l'index d'une entrée de l'archive
Description
Localise une entrée en utilisant son nom.
Liste de paramètres
-
name -
Le nom de l'entrée à chercher
-
flags -
La fonction retourne l'index du fichier dans l'archive. Le flag est spécifié par les valeurs suivantes ou par 0 pour aucun d'entre eux.
-
ZIPARCHIVE::FL_NOCASE -
ZIPARCHIVE::FL_NODIR
-
Valeurs de retour
Retourne l'index de l'entrée en cas de succès ou FALSE si une erreur survient.
Exemples
Exemple #1 Crée une archive et l'utilise avec 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 "échec lors de l'écriture ZIP\n";
}
$zip->close();
if ($zip->open($file) === TRUE) {
exit('échec');
}
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();
?>
L'exemple ci-dessus va afficher :
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
