PHP unpack()関数

PHP Misc 参考手册PHP Misc リファレンスマニュアル

例

バイナリ文字列からデータをアンパックします:

<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>

例を実行 »

定義と用法

unpack() 関数はバイナリ文字列からデータをアンパックします。


構文

unpack(format,data)

パラメータ 説明
format 必須。データをアンパックする際に使用する形式を指定します。

可能な値:

  • a - NUL で埋められた文字列
  • A - SPACE(空白)で埋められた文字列
  • h - 十六進文字列(下位が先)
  • H - 十六進文字列(上位が先)
  • c - signed char
  • C - unsigned char
  • s - 符号付き short(常に16ビット、マシンのバイトオーダー)
  • S - 符号なし short(常に16ビット、マシンのバイトオーダー)
  • n - 符号なし short(常に16ビット、ビッグエンディアンのバイトオーダー)
  • v - 符号なし short(常に16ビット、リトルエンディアンのバイトオーダー)
  • i - 符号付き integer(マシンのサイズとバイトオーダーに依存)
  • I - 符号なし integer(マシンのサイズとバイトオーダーに依存)
  • l - 符号付き long(常に32ビット、マシンのバイトオーダー)
  • L - 符号なし long(常に32ビット、マシンのバイトオーダー)
  • N - 符号なし long(常に32ビット、ビッグエンディアンのバイトオーダー)
  • V - 符号なし long(常に32ビット、リトルエンディアンのバイトオーダー)
  • f - float(マシンのサイズと表現に依存)
  • d - double(マシンのサイズと表現に依存)
  • x - NUL バイト
  • X - 1バイト戻す
  • Z - NUL で埋められた文字列
  • @ - NUL で埋められた絶対位置
data 必須。アンパックされるバイナリデータを指定します。

技術詳細

戻り値: 成功した場合は配列を返し、失敗した場合は FALSE を返します。
PHP バージョン: 4+
更新履歴: PHP 5.5.0 以降、Perl 互換のために以下の変更が行われました:

「a」コードは末尾の NULL バイトを保持します。
「A」コードは末尾の ASCII 空白をすべて削除します。
NUL で埋められた文字列用の「Z」コードが追加され、末尾の NULL バイトを除去します。


その他の例

例 1

データをアンパックします:

<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>

例を実行 »

例 2

データをアンパックします:

<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>

例を実行 »


PHP Misc 参考手册PHP Misc リファレンスマニュアル その他の拡張