ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::locateName — Retorna o Ć­ndice da entrada no arquivo compactado

Descrição

public function ZipArchive::locateName(string $name, int $flags = 0): int|false

Localiza uma entrada usando seu nome.

Parâmetros

name
O nome da entrada a ser procurada
flags

As opções são especificadas através da operação OR nos seguintes valores, ou 0 para nenhum deles.

Valor Retornado

Retorna o Ć­ndice da entrada em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Criar um arquivo compactado e em seguida usĆ”-lo com ZipArchive::locateName()

<?php
$file
= 'testlocate.zip';

$zip = new ZipArchive;
if (
$zip->open($file, ZipArchive::CREATE) !== TRUE) {
exit(
'falha');
}

$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
"falha ao escrever zip\n";
}
$zip->close();

if (
$zip->open($file) !== TRUE) {
exit(
'falha');
}

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();

?>

O exemplo acima produzirĆ”:

0

1
2
+adicionar nota

Notas de UsuƔrios 2 notes

up
10
thedotwriter ¶
13 years ago
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
up
3
me at nowhere dot com ¶
17 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