pack
(PHP 4, PHP 5)
pack — データをバイナリ文字列にパックする
指定された引数を format に基づいて バイナリ文字列にパックします。データを含むバイナリ文字列を返します。
この関数のアイデアは Perl からのものであり、フォーマット指定用の コードは Perl と全く同様に動作します。フォーマット文字列は、 フォーマットコードの後にオプションの反復指定用引数が続く形式と なっています。反復指定用引数として整数値、または入力データの最後まで 反復を意味する * のどちらかを指定することができます。 a, A, h, H の場合、 反復数はそのデータ引数が取得する文字の数を指定します。反復数が @ の場合、 次のデータを置く場所の絶対位置を表します。その他の場合、反復数は データ引数が使われる数を指定し、結果のバイナリ文字列にパックされます。 現在、実装されているものを以下に示します。
符号付及び符号無しの区別は関数 unpack() にのみ 影響を与え、関数 pack() は符号付及び符号無しの フォーマットコードに関して同じ結果を与えるということに注意して下さい。
PHP は内部的に値をマシン依存の大きさの符号付の integer 値として保持することにも注意してください。 このように保持するには大きすぎる符号無しの値を与えた場合、 float に変換する際にしばしば期待外れの結果となります。
pack — データをバイナリ文字列にパックする
説明
string pack ( string format [, mixed args [, mixed ...]] )指定された引数を format に基づいて バイナリ文字列にパックします。データを含むバイナリ文字列を返します。
この関数のアイデアは Perl からのものであり、フォーマット指定用の コードは Perl と全く同様に動作します。フォーマット文字列は、 フォーマットコードの後にオプションの反復指定用引数が続く形式と なっています。反復指定用引数として整数値、または入力データの最後まで 反復を意味する * のどちらかを指定することができます。 a, A, h, H の場合、 反復数はそのデータ引数が取得する文字の数を指定します。反復数が @ の場合、 次のデータを置く場所の絶対位置を表します。その他の場合、反復数は データ引数が使われる数を指定し、結果のバイナリ文字列にパックされます。 現在、実装されているものを以下に示します。
- a NUL で埋めた文字列
- A 空白で埋めた文字列
- h 16進文字列, 下位バイトが先
- H 16進文字列, 上位バイトが先
- c signed char
- C unsigned char
- s signed short (常に 16 ビット、マシンバイトオーダー)
- S unsigned short (常に 16 ビット、マシンバイトオーダー)
- n unsigned short (常に 16 ビット、ビッグインディアンバイトオーダー)
- v unsigned short (常に 16 ビット、リトルインディアンオーダー)
- i signed integer (サイズおよびバイトオーダーはマシンに依存)
- I unsigned integer (サイズおよびバイトオーダーはマシンに依存)
- l signed long (常に 32 ビット、マシンバイトオーダー)
- L unsigned long (常に 32 ビット、マシンバイトオーダー)
- N unsigned long (常に 32 ビット、ビッグインディアンバイトオーダー)
- V unsigned long (常に 32 ビット、リトルインディアンバイトオーダー)
- f float (サイズおよび表現はマシン依存)
- d double (サイズおよび表現はマシン依存)
- x NUL バイト
- X 1バイト戻る
- @ 絶対位置まで NUL で埋める
$binarydata = pack ("nvc*", 0x1234, 0x5678, 65, 66);
この結果のバイナリ文字列の長さは 6 バイト長で、バイト列 0x12, 0x34, 0x78, 0x56, 0x41, 0x42となります。 符号付及び符号無しの区別は関数 unpack() にのみ 影響を与え、関数 pack() は符号付及び符号無しの フォーマットコードに関して同じ結果を与えるということに注意して下さい。
PHP は内部的に値をマシン依存の大きさの符号付の integer 値として保持することにも注意してください。 このように保持するには大きすぎる符号無しの値を与えた場合、 float に変換する際にしばしば期待外れの結果となります。
固有名詞の分類
このページでは「PHP関数リファレンス」からPackを検索した結果を表示しています。
Weblioに収録されているすべての辞書からPackを検索する場合は、下記のリンクをクリックしてください。
全ての辞書からPackを検索
Weblioに収録されているすべての辞書からPackを検索する場合は、下記のリンクをクリックしてください。
全ての辞書からPackを検索
- Packのページへのリンク