decompress() 将截断文件名中第一个句点后的任何部分,因为它假设这是扩展名的一部分。例如,如果您的 PharData 归档文件名为“views-3.x-3.13.tar.gz”,则对其调用 decompress 将创建一个名为“views-3.tar”的 tar 文件。参见 https://bugs.php.net/bug.php?id=58852
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::decompress — 解压整个 Phar 归档文件
注意:
此方法需要 php.ini 设置
phar.readonly
为0
才能对 Phar 对象起作用。否则,将抛出 PharException 异常。
对于基于 tar 和基于 phar 的 phar 归档文件,此方法会解压整个归档文件。
对于基于 Zip 的 phar 归档文件,此方法会抛出异常而失败。必须启用 zlib 扩展才能解压使用 gzip 压缩的归档文件,并且必须启用 bzip2 扩展才能解压使用 bzip2 压缩的归档文件。与所有修改 phar 内容的功能一样,为了成功,phar.readonly INI 变量必须关闭。
此外,此方法会自动更改归档文件的扩展名,phar 归档文件的默认扩展名为 .phar
,基于 tar 的 phar 归档文件的扩展名为 .phar.tar
。或者,可以使用第二个参数指定文件扩展名。
extension
对于解压,默认的文件扩展名为 .phar
和 .phar.tar
。使用此参数指定其他文件扩展名。请注意,所有可执行的 phar 归档文件的文件名中都必须包含 .phar
。
如果 phar.readonly INI 变量已启用,zlib 扩展不可用,或 bzip2 扩展未启用,则抛出 BadMethodCallException 异常。
版本 | 描述 |
---|---|
8.0.0 |
extension 现在可以为 null。 |
示例 #1 一个 Phar::decompress() 示例
<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p3 = $p2->decompress(); // 创建 /path/to/my.phar
?>
decompress() 将截断文件名中第一个句点后的任何部分,因为它假设这是扩展名的一部分。例如,如果您的 PharData 归档文件名为“views-3.x-3.13.tar.gz”,则对其调用 decompress 将创建一个名为“views-3.tar”的 tar 文件。参见 https://bugs.php.net/bug.php?id=58852