web-dev-qa-db-ja.com

.pharアーカイブからファイルを抽出する

Pharファイルに関して、私が完全に見逃したものがあります。 phpunit、pdepend、およびその他の依存関係を必要とするプロジェクトをインストールしています。それらを.pharファイルとして取得しました。しかし、コマンドラインツール(phpコマンド)を使用してファイルを抽出することはできません。私は問題をグーグルで調べましたが、質問に実際に答えているものは見つかりませんでした。誰も助けることができますか?

48
epsilones

はい、このライブラリはそれを行うことができます: https://github.com/koto/phar-util

phar-extract library.phar出力ディレクトリ

22
Alex

@pozsの答えを拡張すると、実際にはシンプルなワンライナーで PharData-> extractTo を使用できます。

php -r '$phar = new Phar("phar-file.phar"); $phar->extractTo("./directory");'
80
Adrian Heine

それが新しいかどうかはわかりませんが、PHP 5.4.16で動作します:

phar extract -f %some phar file%

Pharは、現在の作業ディレクトリに関連して抽出されます。

52
lyte

PhpStorm IDEは、pharアーカイブのコンテンツの表示に使用できます。

11
ya.teck

このサイト .pharファイルを.Zipファイルに簡単に変換します。

やってみて。

6
naju

使用するだけの場合は、phar:///path/to/myphar.phar/file.php

しかし、本当にアンパックしたい場合は、 PharData クラスを参照してください-コマンドラインでの既知の(内部)抽出はありませんが、そのためのスクリプトを書くことができます。

4
pozs

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

これにより、すべてのファイルが非圧縮になります!

0
Josef