Phar::decompress

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

Phar::decompress β€” РаспаковываСт вСсь Phar-Π°Ρ€Ρ…ΠΈΠ²

ОписаниС

public function Phar::decompress(?string $extension = null): ?Phar

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Phar потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ phar.readonly Π² Ρ„Π°ΠΉΠ»Π΅ php.ini Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ PharException.

Π’ случаС с phar-Π°Ρ€Ρ…ΠΈΠ²Π°ΠΌΠΈ, основанными Π½Π° tar ΠΈΠ»ΠΈ phar, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ распаковываСт вСсь Π°Ρ€Ρ…ΠΈΠ².

Π’ случаС с phar-Π°Ρ€Ρ…ΠΈΠ²Π°ΠΌΠΈ, основанными Π½Π° zip, Π²Ρ‹Π·ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠΈΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Для распаковки Π°Ρ€Ρ…ΠΈΠ²Π°, сТатого ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ gzip, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ zlib; для распаковки Π°Ρ€Ρ…ΠΈΠ²Π°, сТатого ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ bzip2, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ bzip2. Как ΠΈ Π² случаС с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ содСрТаниС phar-Π°Ρ€Ρ…ΠΈΠ²Π°, для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ INI-пСрСмСнная phar.readonly Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ автоматичСски мСняСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° Π°Ρ€Ρ…ΠΈΠ²Π°: ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ .phar для phar-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² ΠΈ .phar.tar для phar-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ², основанных Π½Π° tar. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

extension

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ распакованного Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ²Π»ΡΡŽΡ‚ΡΡ .phar ΠΈ .phar.tar. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для задания Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ распакованного Ρ„Π°ΠΉΠ»Π°. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ всС исполняСмыС phar-Π°Ρ€Ρ…ΠΈΠ²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ .phar Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Phar Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния ΠΈ null Π² случаС возникновСния ошибки.

Ошибки

ВыбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ BadMethodCallException, Ссли INI-пСрСмСнная phar.readonly Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ zlib Π½Π΅ доступСн ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ bzip2 Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½.

Бписок измСнСний

ВСрсия ОписаниС
8.0.0 extension Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ допускаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Phar::decompress()

<?php
$p
= new Phar('/ΠΏΡƒΡ‚ΡŒ/ΠΊ/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'ΠΏΡ€ΠΈΠ²Π΅Ρ‚';
$p['myfile2.txt'] = 'ΠΏΡ€ΠΈΠ²Π΅Ρ‚';
$p3 = $p2->decompress(); // создаст /ΠΏΡƒΡ‚ΡŒ/ΠΊ/my.phar
?>

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • PharFileInfo::getCompressedSize() - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° дискС с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ сТатия
  • PharFileInfo::isCompressed() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сТат Π»ΠΈ Ρ„Π°ΠΉΠ»
  • PharFileInfo::compress() - Π‘ΠΆΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ zlib ΠΈΠ»ΠΈ bzip2
  • PharFileInfo::decompress() - РаспаковываСт Phar-Ρ„Π°ΠΉΠ» Π² phar-Π°Ρ€Ρ…ΠΈΠ²Π΅
  • PharData::compress() - Π‘ΠΆΠΈΠΌΠ°Π΅Ρ‚ вСсь Π°Ρ€Ρ…ΠΈΠ² tar/zip, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сТатиС Gzip ΠΈΠ»ΠΈ Bzip2
  • Phar::canCompress() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ phar сТатиС с использованиСм zlib ΠΈΠ»ΠΈ bzip2
  • Phar::isCompressed() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Phar::GZ ΠΈΠ»ΠΈ PHAR::BZ2, Ссли phar-Π°Ρ€Ρ…ΠΈΠ² сТат Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ (.tar.gz/tar.bz ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅)
  • Phar::compress() - Π‘ΠΆΠΈΠΌΠ°Π΅Ρ‚ вСсь Phar-Π°Ρ€Ρ…ΠΈΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Gzip- ΠΈΠ»ΠΈ Bzip2-сТатия
  • Phar::getSupportedCompression() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сТатия
  • Phar::compressFiles() - Π‘ΠΆΠΈΠΌΠ°Π΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Phar-Π°Ρ€Ρ…ΠΈΠ²Π΅
  • Phar::decompressFiles() - РаспаковываСт всС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Phar-Π°Ρ€Ρ…ΠΈΠ²Π΅
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
0
shevadas at gmail dot com ΒΆ
10 years ago
decompress() will truncate any part of the filename after the first period, as it assumes it's part of the extension. For example, if your PharData archive is named "views-3.x-3.13.tar.gz", calling decompress on it will create a tar file named "views-3.tar". See https://bugs.php.net/bug.php?id=58852