downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ZipArchive::open> <ZipArchive::getStream
Last updated: Fri, 20 May 2011

view this page in

ZipArchive::locateName

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

ZipArchive::locateNameDevuelve el índice de la entrada en el archivo

Descripción

mixed ZipArchive::locateName ( string $name [, int $flags ] )

Localiza una entrada utilizando su nombre.

Parámetros

name

El nombre de la entrada a buscar

flags

Los indicadores son especificados agregándoles OR a los siguientes valores, ó 0 para ninguno de ellos.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

Valores devueltos

Devuelve el índice de la entrada en caso de tener éxito, o FALSE en caso de error.

Ejemplos

Example #1 Crear un archivo y luego utilizarlo con ZipArchive::locateName()

<?php
$file 
'testlocate.zip';

$zip = new ZipArchive;
if (
$zip->open($fileZIPARCHIVE::CREATE) !== TRUE) {
    exit(
'falló');
}

$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 
"falló al escribir en el archivo zip\n";
}
$zip->close();

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

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

?>

El resultado del ejemplo sería:

El ejemplo de arriba mostrará la salida:

0

1
2


add a note add a note User Contributed Notes ZipArchive::locateName
m021 at springtimesoftware dot com 20-May-2011 05:48
Under Windows, ZipArchive::locateName will fail to find any entry that contains "special characters" (example: #).

For the workaround, see the note at the documentation for ZipArchive::addFile that contains the string "IBM850".
me at nowhere dot com 03-Sep-2008 08:04
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

 
show source | credits | stats | sitemap | contact | advertising | mirror sites