TECH I.S.

PHP unpack() 関数

❮ 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 その他のリファレンス


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細