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

zip_entry_compressedsize()

Функция zip_entry_compressedsize() является устаревшей функцией из расширения zip для PHP. Она была помечена как устаревшая в PHP 7.4 и удалена в PHP 8.0. Сжатый размер — это размер файла после его сжатия с использованием алгоритма сжатия zip.

Синтаксис

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

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

php
int zip_entry_compressedsize(resource $zip_entry)

Где $zip_entry — это дескриптор записи zip-архива для файла в архиве. Обратите внимание, что эта функция относится к устаревшему расширению zip и больше не доступна в PHP 8.0+.

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

Рассмотрим практический пример использования zip_entry_compressedsize() в PHP.

Пример: Получение сжатого размера файла в ZIP-архиве

Предположим, вы открыли ZIP-архив с помощью устаревших функций PHP для работы с zip и хотите получить сжатый размер файла в архиве. Для этого вы можете использовать функцию zip_entry_compressedsize(), как показано ниже:

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

php
$zip = zip_open("example.zip");
if ($zip === false) {
    die("Failed to open zip archive.");
}

$zip_entry = zip_read($zip);
if ($zip_entry === false) {
    die("Failed to read zip entry.");
}

// get the compressed size of the file
$compressed_size = zip_entry_compressedsize($zip_entry);

echo "The compressed size of the file is: " . $compressed_size . " bytes.";

Этот код открывает файл ZIP-архива example.zip с помощью zip_open(). Затем мы читаем файл в архиве с помощью zip_read() и получаем его сжатый размер с помощью zip_entry_compressedsize(). В конце сжатый размер выводится пользователю.

Современная альтернатива: Использование ZipArchive

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

php
$zip = new ZipArchive;
if ($zip->open('example.zip') === true) {
    $index = $zip->locateName('example.txt');
    if ($index !== false) {
        $stat = $zip->statIndex($index);
        $compressed_size = $stat['comp_size'];
        echo "The compressed size of the file is: " . $compressed_size . " bytes.";
    }
    $zip->close();
}

Заключение

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

Практика

В чём заключается функциональность функции zip_entry_compressedsize() в PHP?

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

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