PharData::decompress

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

PharData::decompressРаспаковать весь Phar-архив

Описание

PharData::decompress ([ string $extension ] ) : object

Для архивов типа tar, этот метод распаковывает весь архив.

Для архивов типа Zip этот метод выбросит исключение. Для разжатия gzip-архивов должно быть разрешено расширение zlib, а для bzip2, соответственно, расширение bzip2.

Также этот метод автоматически меняет расширение файла, по умолчанию .tar. Расширение можно указать явно с помощью параметра extension.

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

extension

По умолчанию при распаковке файлу меняется расширение на .tar. С помощью этого параметра можно явно указать новое расширение. Будьте осторожны, только запускаемые архивы могут содержать .phar в своих именах.

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

Возвращает объект типа PharData.

Ошибки

Выбрасывает исключение BadMethodCallException, если отсутствует расширение, необходимое для распаковки: zlib или bzip2.

Примеры

Пример #1 Пример использования PharData::decompress()

<?php
$p 
= new PharData('/path/to/my.tar.gz');
$p->decompress(); // creates /path/to/my.tar
?>

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

add a note add a note

User Contributed Notes 1 note

up
5
pttlens at gmail dot com
10 months ago
If filename contains multiple dots(.), you can preserve other parts by following code (example1).

Example #1 (Expected)
<?php
$filename
= "abc.xyz.tar.gz";
$p = new PharData($filename);
$exts = explode('.', $filename);
array_shift($exts);
array_pop($exts);
$ext = implode('.', $exts);
$p->decompress($ext); # result filename: abc.xyz.tar
?>

Example #2 (might be unexpected)
<?php
$filename
= "abc.xyz.tar.gz";
$p = new PharData($filename);
$p->decompress($filename); # result filename: abc.tar; xyz is truncated accidentally.
?>
To Top