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
ZipArchive::locateName
(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
ZipArchive::locateName — Gibt den Index eines Archiveintrags zurück
Beschreibung
Lokalisiert einen Eintrag unter Verwendung seines Namens.
Parameter-Liste
- name
-
Der Name des Eintrags, nach dem gesucht werden soll.
- flags
-
Die Funktion gibt den Index der Datei namens fname im Archiv zurück. Die Flags können miteinander kombiniert werden, soll keines davon genutzt werden, sollte 0 verwendet werden.
-
ZIPARCHIVE::FL_NOCASE
-
ZIPARCHIVE::FL_NODIR
-
Rückgabewerte
Gibt im Erfolgsfall den Index eines Eintrags, andernfalls FALSE zurück.
Beispiele
Beispiel #1 Ein Archiv erstellen und es mit locateName verwenden
<?php
$file = 'testlocate.zip';
$zip = new ZipArchive;
if ($zip->open($file, ZIPARCHIVE::CREATE) !== TRUE) {
exit('Fehler');
}
$zip->addFromString('eintrag1.txt', 'Eintrag #1');
$zip->addFromString('eintrag2.txt', 'Eintrag #2');
$zip->addFromString('dir/eintrag2d.txt', 'Eintrag #2');
if (!$zip->status == ZIPARCHIVE::ER_OK) {
echo "Fehler beim Schreiben des ZIP\n";
}
$zip->close();
if ($zip->open($file) !== TRUE) {
exit('Fehler');
}
echo $zip->locateName('eintrag1.txt') . "\n";
echo $zip->locateName('eiNtrag2.txt') . "\n";
echo $zip->locateName('eiNtrag2.txt', ZIPARCHIVE::FL_NOCASE) . "\n";
echo $zip->locateName('einTRag2d.txt', ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR) . "\n";
$zip->close();
?>
ZipArchive::locateName
me at nowhere dot com
03-Sep-2008 08:04
03-Sep-2008 08:04
