❮ PHP その他のリファレンス
例
バイナリ文字列からデータをアンパックします。
<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>
自分で試してみる »
定義と使用法
unpack() 関数は、バイナリ文字列からデータをアンパックします。
構文
unpack(format,data)
パラメータ値
パラメータ |
説明 |
フォーマット |
必要。データをアンパックするときに使用する形式を指定します。 可能な値:
- a - NUL で埋められた文字列
- A - スペースで埋められた文字列
- h - 16 進文字列、下位ニブルが最初
- H - 16 進文字列、上位ニブルが最初
- c - 署名された文字
- C - 符号なし文字
- s - signed short (常に 16 ビット、マシン バイト オーダー)
- S - unsigned short (常に 16 ビット、マシン バイト オーダー)
- n - unsigned short (常に 16 ビット、ビッグ エンディアンのバイト順)
- v - unsigned short (常に 16 ビット、リトルエンディアンのバイト順)
- i - 符号付き整数 (マシンに依存するサイズとバイト順)
- I - 符号なし整数 (マシンに依存するサイズとバイト順)
- l - signed long (常に 32 ビット、マシン バイト オーダー)
- L - unsigned long (常に 32 ビット、マシン バイト オーダー)
- N - unsigned long (常に 32 ビット、ビッグ エンディアンのバイト順)
- V - unsigned long (常に 32 ビット、リトルエンディアンのバイト順)
- q - signed long long (常に 64 ビット、マシン バイト オーダー)
- Q - unsigned long long (常に 64 ビット、マシン バイト オーダー)
- J - unsigned long long (常に 64 ビット、ビッグ エンディアンのバイト順)
- P - unsigned long long (常に 64 ビット、リトルエンディアンのバイト順)
- f - float (マシンに依存するサイズと表現)
- g - float (マシンに依存するサイズ、リトルエンディアンのバイト順)
- G - float (マシンに依存するサイズ、ビッグ エンディアンのバイト順)
- d - double (マシンに依存するサイズと表現)
- e - double (マシンに依存するサイズ、リトルエンディアンのバイト順)
- E - double (マシンに依存するサイズ、ビッグ エンディアンのバイト順)
- x - NUL バイト
- X - 1 バイトのバックアップ
- Z - NUL で埋められた文字列
- @ - 絶対値への NUL フィル
|
データ |
必要。アンパックするバイナリ データを指定します。 |
オフセット |
オプション。アンパックを開始する場所を指定します。デフォルトは 0 です。 |
技術的な詳細
戻り値: |
成功した場合は配列を返し、失敗した場合は FALSE を返します。 |
PHP バージョン: |
4+ |
変更ログ: |
PHP 7.2 - float と double は、ビッグ エンディアンとスモール エンディアンの両方をサポートするようになりました。
PHP 7.1 - オプションのオフセット パラメータを追加しました。
PHP 5.5.0 - Perl との互換性のために次の変更が行われました。 「a」コードは、末尾の NULL バイトを保持するようになりました。
「A」コードは、末尾のすべての ASCII 空白を取り除くようになりました。
NULL で埋められた文字列に「Z」コードが追加され、末尾の NULL バイトが削除されます。 |
その他の例
例
データのアンパック:
<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>
自分で試してみる »
例
データのアンパック:
<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>
自分で試してみる »
❮ PHP その他のリファレンス