PharData::decompress

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

PharData::decompressDescompacta todo o arquivo Phar

Descrição

public PharData::decompress(?string $extension = null): ?PharData

Para arquivos baseados em tar, esse método descompacta o arquivo inteiro.

Para arquivos Zip, este método falha com uma exceção. A extensão zlib deve ser habilitada para descompactar um arquivo compactado com gzip, e a bzip2 deve ser habilitada para descompactar um arquivo compactado com bzip2.

Além disso, este método renomeia automaticamente a extensão do arquivo compactado, .tar por padrão. Como alternativa, uma extensão de arquivo pode ser especificada com o parâmetro extension.

Parâmetros

extension

Para descompactação, a extensão de arquivo padrão é .tar. Use este parâmetro para especificar outra extensão de arquivo. Esteja ciente de que apenas arquivos executáveis ​​podem conter .phar em seus nomes.

Valor Retornado

Um objeto PharData é retornado em caso de sucesso, ou null em caso de falha.

Erros/Exceções

Lança BadMethodCallException se a extensão zlib não estiver disponível ou se a extensão bzip2 não estiver habilitada.

Registro de Alterações

Versão Descrição
8.0.0 extension agora é anulável.

Exemplos

Exemplo #1 Um exemplo de PharData::decompress()

<?php
$p
= new PharData('/caminho/para/meu.tar.gz');
$p->decompress(); // cria /caminho/para/meu.tar
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
6
pttlens at gmail dot com
6 years 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