Перейти к содержимому

zip_entry_name()

Функция zip_entry_name() — это устаревшая функция PHP, предназначенная для получения имени файла в ZIP-архиве. Возвращаемое имя представляет собой путь к файлу относительно корня ZIP-архива.

Примечание о совместимости: Устаревшие процедурные функции zip_* были помечены как устаревшие в PHP 7.4 и удалены в PHP 8.0. Данное руководство охватывает устаревший синтаксис исключительно в исторических целях. Для современных PHP-приложений используйте класс ZipArchive, который является единственным рабочим вариантом в PHP 8.0 и выше.

Синтаксис

Синтаксис функции zip_entry_name() выглядит следующим образом:

Синтаксис функции zip_entry_name() в PHP

php
string zip_entry_name(resource $zip_entry)

Где $zip_entry — это дескриптор ресурса, возвращаемый функцией zip_read() для записи в ZIP-архиве.

Примеры использования

Рассмотрим практический пример получения имени файла из ZIP-архива.

Пример: Использование устаревшего синтаксиса (PHP 7.4 и более ранних версий)

Следующий пример демонстрирует, как открыть ZIP-архив, перебрать его записи и получить имя каждой записи с помощью устаревших функций zip_*:

Получение имён файлов из ZIP-архива в устаревшем PHP

php
$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);
}

Данный код открывает example.zip, последовательно читает каждую запись, выводит её имя с помощью zip_entry_name() и корректно закрывает как запись, так и архив.

Пример: Получение имени файла в ZIP-архиве (современный PHP)

Поскольку устаревшие функции zip_* удалены в PHP 8.0+, рекомендуемым подходом является использование класса ZipArchive. В этом примере показано, как открыть архив, прочитать первую запись и получить её имя с корректной обработкой ошибок и очисткой ресурсов:

Получение имени файла в ZIP-архиве в PHP

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.";
}

Этот код создаёт экземпляр ZipArchive и открывает example.zip. Он получает имя первой записи с помощью getNameIndex(0), выводит его и корректно закрывает архив. Если открыть архив не удаётся, отображается сообщение об ошибке.

Заключение

В этой статье мы рассмотрели функцию zip_entry_name() и её роль в получении имён файлов из ZIP-архивов. Мы объяснили её синтаксис и привели примеры как для устаревшего, так и для современного PHP. Используя ZipArchive в своих приложениях, вы сможете надёжно управлять ZIP-архивами и получать метаданные файлов.

Практика

Что делает функция zip_entry_name() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.