zip_entry_name()
La función zip_entry_name() en PHP devuelve el nombre de un archivo en un archivo zip, es decir, la ruta relativa a la raíz del archivo zip.
La función zip_entry_name() es una función PHP heredada que se utiliza para obtener el nombre de un archivo en un archivo zip. El nombre devuelto es la ruta del archivo relativa a la raíz del archivo zip.
Nota de compatibilidad: Las funciones procedimentales heredadas
zip_*fueron declaradas obsoletas en PHP 7.4 y eliminadas en PHP 8.0. Este tutorial cubre la sintaxis heredada como referencia histórica. Para aplicaciones modernas de PHP, use la claseZipArchive, que es la única opción viable en PHP 8.0+.
Sintaxis
La sintaxis de la función zip_entry_name() es la siguiente:
Sintaxis de la función zip_entry_name() en PHP
string zip_entry_name(resource $zip_entry)Donde $zip_entry es un manejador de recurso devuelto por zip_read() para una entrada del archivo zip.
Ejemplos de uso
Veamos un ejemplo práctico de cómo recuperar el nombre de un archivo de un archivo zip.
Ejemplo: Uso heredado (PHP 7.4 y anteriores)
El siguiente ejemplo muestra cómo abrir un archivo zip, iterar por sus entradas y recuperar el nombre de cada entrada utilizando las funciones heredadas zip_*:
Recuperar nombres de archivos de un archivo Zip en PHP heredado
$zip = zip_open('example.zip');
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo zip_entry_name($zip_entry) . "\n";
zip_entry_close($zip_entry);
}
zip_close($zip);
}Este código abre example.zip, lee cada entrada de forma secuencial, imprime su nombre mediante zip_entry_name() y cierra correctamente tanto la entrada como el archivo.
Ejemplo: Obtener el nombre de un archivo en un archivo Zip (PHP moderno)
Dado que las funciones heredadas zip_* fueron eliminadas en PHP 8.0+, el enfoque recomendado es usar la clase ZipArchive. Este ejemplo muestra cómo abrir un archivo, leer la primera entrada y obtener su nombre con manejo adecuado de errores y limpieza de recursos:
Obtener el nombre de un archivo en un archivo Zip en PHP
$zip = new ZipArchive();
$zipFile = 'example.zip';
if ($zip->open($zipFile) === true) {
// Get the name of the first entry
$fileName = $zip->getNameIndex(0);
echo "The name of the file is: " . $fileName;
$zip->close();
} else {
echo "Failed to open the archive.";
}Este código crea una instancia de ZipArchive y abre example.zip. Recupera el nombre de la primera entrada mediante getNameIndex(0), lo muestra en pantalla y cierra el archivo correctamente. Si el archivo no puede abrirse, se muestra un mensaje de error.
Conclusión
En este artículo hemos analizado la función zip_entry_name() y su rol en la recuperación de nombres de archivos desde archivos zip. Hemos explicado su sintaxis y proporcionado ejemplos tanto heredados como modernos. Al usar ZipArchive en sus aplicaciones, podrá gestionar archivos zip de forma fiable y acceder a los metadatos de los archivos.
Funciones relacionadas
Las funciones heredadas zip_* se suelen usar juntas al iterar sobre un archivo zip. Los siguientes capítulos cubren el resto del flujo de trabajo:
- zip_open() — abrir un archivo zip para su lectura.
- zip_read() — leer la siguiente entrada de un archivo abierto.
- zip_entry_open() — abrir una entrada para poder leer su contenido.
- zip_entry_read() — leer el contenido de una entrada abierta.
- zip_entry_filesize() — obtener el tamaño sin comprimir de una entrada.
- zip_entry_compressedsize() — obtener el tamaño comprimido de una entrada.
- zip_entry_compressionmethod() — obtener el método de compresión utilizado en una entrada.
- zip_entry_close() — cerrar una entrada abierta.
- zip_close() — cerrar el archivo.
Para el manejo moderno y compatible de archivos zip, consulte la descripción general de la extensión Zip de PHP.