phar って、tar や zip とは何が違うの?
目次
- Phar ファイルのスタブ
- Phar 形式と Tar 形式、Zip 形式の徹底比較
- Tar 形式の phar アーカイブ
- Zip 形式の phar アーカイブ
- Phar ファイルフォーマット
- グローバルな Phar ビットマップフラグ
- Phar のシグネチャの書式
Phar アーカイブの原料のうち、ファイル形式に依存しないもの
すべての Phar アーカイブは、三つあるいは四つの部分から構成されています。
-
スタブ
-
内容を説明するマニフェスト
-
ファイルの内容
-
[オプション] Phar の整合性を検証するためのシグネチャ (phar 形式の場合のみ)
Phar マニフェストのファイルエントリの定義
マニフェスト内の各ファイルについて、次のような情報が含まれます。
| バイト数 | 説明 |
|---|---|
| 4 バイト | ファイル名の長さを表すバイト数。 |
| ?? | ファイル名 (先ほど指定した長さになります)。 |
| 4 バイト | 圧縮前のファイルサイズを表すバイト数。 |
| 4 バイト | ファイルの Unix タイムスタンプ。 |
| 4 バイト | 圧縮後のファイルサイズを表すバイト数。 |
| 4 バイト | 圧縮前のファイルの CRC32 チェックサム。 |
| 4 バイト | ファイル固有のビットマップフラグ。 |
| 4 バイト | シリアライズされたファイルのメタデータの長さ (存在しない場合は 0)。 |
| ?? | シリアライズされたファイルのメタデータ。serialize() の形式で格納される。 |
API バージョン 1.1.1 では、空のディレクトリの最後にスラッシュをつけて my/directory/ のような形式で保存されることに注意しましょう。
ファイル固有のビットマップ値として認識される値は次のとおりです。
| 値 | 説明 |
|---|---|
| 0x000001FF | これらのビットは、ファイルの特定のパーミッションを定義するために予約されています。 このパーミッションは fstat() で用いられ、 ファイルを展開する際に特定のパーミッションを指定することができます。 |
| 0x00001000 | 設定されている場合、このファイルは zlib で圧縮されています。 |
| 0x00002000 | 設定されている場合、このファイルは bzip で圧縮されています。 |
phar って、tar や zip とは何が違うの?
There are no user contributed notes for this page.
