(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharFileInfo::compress — Сжимает текущий файл методом zlib или bzip2
Метод сжимает файл в phar-архиве методом сжатия bzip2 или zlib. Для работы метода потребуется включить модуль bzip2 или zlib. Для распаковки уже сжатого файла также потребуется включить модуль, который соответствует методу сжатия. Как и с остальными функциями, которые изменяют содержимое phar-архива, для сжатия файла в Phar-архиве потребуется отключить INI-переменную phar.readonly; директива не ограничивает обработку архивов, с которыми работает класс PharData.
Функция возвращает 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)