Сжимает текущий файл методом zlib или bzip2

# PharFileInfo::compress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharFileInfo::compress — Сжимает текущий файл методом zlib или bzip2

### Описание

public function PharFileInfo::compress(int `$compression`): true

Метод сжимает файл в phar-архиве методом сжатия bzip2 или zlib. Для работы метода потребуется включить модуль bzip2 или zlib. Для распаковки уже сжатого файла также потребуется включить модуль, который соответствует методу сжатия. Как и с остальными функциями, которые изменяют содержимое phar-архива, для сжатия файла в Phar-архиве потребуется отключить INI-переменную phar.readonly; директива не ограничивает обработку архивов, с которыми работает класс PharData.

### Список параметров

`compression`

  Параметр принимает только два вида сжатия: `Phar::GZ` и `Phar::BZ2`.

### Возвращаемые значения

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Ошибки

Метод выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, или если модуль bzip2 или zlib недоступен.

### Примеры

Пример #1 Пример сжатия файла методом PharFileInfo::compress()

    <?php

    try {
        $p = new Phar('/path/to/my.phar', 0, 'my.phar');

        $p['myfile.txt'] = 'hi';

        $file = $p['myfile.txt'];
        var_dump($file->isCompressed(Phar::BZ2));

        $p['myfile.txt']->compress(Phar::BZ2);
        var_dump($file->isCompressed(Phar::BZ2));
    } catch (Exception $e) {
        echo 'При попытке создать или модифицировать файл my.phar возникла ошибка: ', $e;
    }

    ?>

Результат выполнения приведённого примера:

    bool(false)
    bool(true)

### Смотрите также

- PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учётом сжатия
- PharFileInfo::isCompressed() - Проверить, сжат ли файл
- PharFileInfo::decompress() - Распаковывает Phar-файл в phar-архиве
- Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
- Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
- Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
- Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
- Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
- Phar::decompress() - Распаковывает весь Phar-архив
- Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open