PHP 8.5.0 Alpha 2 available for testing

PharData::decompress

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

PharData::decompressDescomprime el archivo Phar completo

Descripción

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

Descomprime el archivo completo, si es un archivo tar.

Para los archivos Zip, este método falla y lanza una excepción. La extensión zlib debe estar activada para descomprimir un archivo comprimido con gzip y la extensión bzip2 debe estar disponible para descomprimir un archivo comprimido con bzip2.

Además, este método renombra automáticamente la extensión de archivo del archivo, .tar por defecto. De lo contrario, una extensión de archivo puede especificarse con el argumento extension.

Parámetros

extension

Para descomprimir, la extensión por defecto es .tar. Utilice este argumento para especificar otra extensión de archivo. Tenga en cuenta que solo los archivos ejecutables pueden contener .phar en su nombre de archivo.

Valores devueltos

Un objeto PharData es devuelto en caso de éxito, o null en caso de fallo.

Errores/Excepciones

Levanta una excepción BadMethodCallException si la extensión zlib no está disponible o si la extensión bzip2 no está activada.

Historial de cambios

Versión Descripción
8.0.0 extension ahora es nullable.

Ejemplos

Ejemplo #1 Ejemplo con PharData::decompress()

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

Ver también

add a note

User Contributed Notes 1 note

up
5
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