(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharFileInfo::decompress β Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Phar-ΡΠ°ΠΉΠ» Π² phar-Π°ΡΡ ΠΈΠ²Π΅
ΠΠ΅ΡΠΎΠ΄ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» Π² phar-Π°ΡΡ ΠΈΠ²Π΅. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ bzip2 ΠΈΠ»ΠΈ zlib, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΆΠ°ΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π²Π½ΡΡΡΠΈ Π°ΡΡ ΠΈΠ²Π°. ΠΠ°ΠΊ ΠΈ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ phar-Π°ΡΡ ΠΈΠ²Π°, Π΄Π»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»Π° Π² Phar-Π°ΡΡ ΠΈΠ²Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ INI-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ phar.readonly; Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π°ΡΡ ΠΈΠ²ΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ»Π°ΡΡ PharData.
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true.
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ BadMethodCallException, Π΅ΡΠ»ΠΈ INI-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ phar.readonly Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ bzip2 ΠΈΠ»ΠΈ zlib Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»Π° Π² phar-Π°ΡΡ ΠΈΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ PharFileInfo::decompress()
<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
$file->compress(Phar::GZ);
var_dump($file->isCompressed());
$p['myfile.txt']->decompress();
var_dump($file->isCompressed());
} catch (Exception $e) {
echo 'ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» my.phar Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°: ', $e;
}
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
int(4096) bool(false)