53

对于 phar 文件,我完全错过了一些东西。我正在安装一个需要 phpunit、pdepend 和其他依赖项的项目。我将它们作为 .phar 文件获取。但是,我无法使用命令行工具(php 命令)从中提取文件。我用谷歌搜索了这个问题,但没有找到真正回答这个问题的东西。有人可以帮忙吗?

4

7 回答 7

91

扩展@pozs 的答案,您实际上可以在一个简单的单行中使用PharData->extractTo :

php -r '$phar = new Phar("phar-file.phar"); $phar->extractTo("./directory");'
于 2014-01-20T08:34:27.047 回答
66

不确定它是否是新的,但在 PHP 5.4.16 下可以使用:

phar extract -f %some phar file%

phar 是相对于您当前的工作目录提取的。

于 2014-03-25T03:51:07.800 回答
22

是的,这个库可以做到:https ://github.com/koto/phar-util

phar 提取 library.phar 输出目录

于 2012-10-21T11:30:33.870 回答
13

PhpStorm IDE 可用于查看 phar 档案的内容。

于 2015-07-25T15:34:12.273 回答
7

该站点可以轻松地将 .phar 文件转换为 .zip 文件。

试试看。

于 2014-06-03T06:08:53.807 回答
4

如果您只想使用它,则应包含 as phar:///path/to/myphar.phar/file.php

但如果你真的想解压它,请参阅PharData类 - 在命令行中没有已知的(内部)提取,但你可以为此编写一个脚本。

于 2012-10-21T11:32:39.313 回答
2

PHP 还具有提取 phar 档案的功能,但文件保持当前压缩。要正确提取档案,必须先将其转换为未压缩的形式,然后再提取:

<?php
$phar = new Phar('Someclass.phar');
$phar2 = $phar->convertToExecutable (Phar::TAR,Phar::NONE); // Convert to an uncompressed tar archive
$phar2->extractTo('/some/path/'); // Extract all files

这将为您提供所有未压缩的文件!

于 2015-06-17T12:37:30.370 回答