開発では、データをバイナリ形式で送信する必要がよくありますが、このとき、送信プロセス中にデータをより安定して効率的に送信できるように、バイナリデータをバイト配列に変換する必要があります。 PHPではこの機能を実現するのがpack関数とunpack関数ですので、一緒に学びましょう。
pack 関数は、PHP のバイナリ データ パッケージ化関数で、指定された形式に従って、指定されたデータをバイナリ文字列にパックできます。このうち、フォーマット文字列パラメータはパックするバイト順に従って指定され、各フォーマット文字はデータ型に対応します。 Pack 関数の基本的な使用法は次のとおりです。
string pack ( string $format [, mixed $args [, mixed $... ]] )
このうち、$format パラメータはフォーマット文字列、$args はパックする必要があるデータです。
次は、pack 関数の使用法を示す例です:
$binary_str = pack("C*", 67, 119, 105, 107, 105); echo $binary_str;
この例では、書式文字列 "C*" は文字によるパッケージ化を意味し、args パラメーターは 67 です。 119、105、107、105。実行結果は次のようになります。
Cwiki
つまり、文字配列 67、119、105、107、105 で構成される文字列が文字モードでパックされ、文字列 "Cwiki" が返されます。
pack 関数は、文字モードに加えて、整数 (I)、長整数 (L)、倍精度 (d) など、他のさまざまなパッキング モードもサポートしています。一般的に使用されるフォーマット文字の一部を次に示します。
array unpack ( string $format , string $data )このうち、$format パラメータはフォーマット文字列、$data はアンパックする必要があるデータです。 次は、unpack 関数の使用法を示す例です:
$binary_str = "Cwiki"; $unpacked = unpack("C*",$binary_str); print_r($unpacked);この例では、$binary_str はバイナリ データ文字列 "Cwiki"、$format パラメータは "C *」は、キャラクターモードの解凍を押すことを意味します。実行結果は次のようになります。
Array ( [1] => 67 [2] => 119 [3] => 105 [4] => 107 [5] => 105 )つまり、バイナリ データ文字列「Cwiki」が文字モードで解凍され、さまざまな文字を表す配列が取得されます。 unpack 関数は、character メソッド以外にもさまざまな unpack メソッドをサポートしており、フォーマット文字と Pack 関数のフォーマット文字は 1 対 1 で対応します。 まとめると、pack 関数と unpack 関数を組み合わせて使用することで、あらゆるデータをバイナリ文字列に変換し、バイナリ文字列からさまざまなデータ型をアンパックすることで、PHP のバイナリ関数を実現できます。バイト配列。
以上がPHPでバイナリデータをバイト配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。