关于phar文件,我错过了一个重要的东西。 我正在安装需要phpunit、pdepend和其他依赖项的项目。 我获取了它们作为.phar文件。 但是,我不能使用命令行工具(php命令)从中提取文件。 我在网上搜索这个问题,但没有找到真正回答这个问题的东西。 有人可以帮忙吗?
关于phar文件,我错过了一个重要的东西。 我正在安装需要phpunit、pdepend和其他依赖项的项目。 我获取了它们作为.phar文件。 但是,我不能使用命令行工具(php命令)从中提取文件。 我在网上搜索这个问题,但没有找到真正回答这个问题的东西。 有人可以帮忙吗?
在 @pozs 的回答基础上,你实际上可以使用 PharData->extractTo 来完成简单的一行命令:
php -r '$phar = new Phar("phar-file.phar"); $phar->extractTo("./directory");'
'
和 "
颠倒一下,变成 php -r "$phar = new Phar('phar-file.phar'); $phar->extractTo('./directory');"
. 可能与 Windows 相关的引号问题。 - Xenos(new Phar("phar-file.phar"))->extractTo("./directory");
- Gras Doublephp -d phar.readonly=Off -r '(new Phar("phar-file.phar"))->extractTo("./directory");'
- Scott P.我不确定这是否是新功能,但在 PHP 5.4.16 中可以运行:
phar extract -f %some phar file%
Phar 文件会相对于当前的工作目录进行提取。
phar.phar
重命名为 phar
,然后正常的命令就可以工作了。 - lyte是的,这个库可以做到:https://github.com/koto/phar-util
使用phar-extract库,可以将library.phar文件提取到指定的输出目录中。
PhpStorm IDE可以用于查看phar存档的内容。
phar:///path/to/myphar.phar/file.php
。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
php -dphar.readonly=0 -r '(new Phar("archive.phar"))->convertToExecutable(Phar::TAR,Phar::NONE)->extractTo("./output");'
- Alex Barker