ホームページ >バックエンド開発 >PHPチュートリアル >「unpack()」を使用して PHP 文字列をバイト配列に変換するにはどうすればよいですか?

「unpack()」を使用して PHP 文字列をバイト配列に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-04 06:02:13663ブラウズ

How Can I Convert a PHP String into a Byte Array Using `unpack()`?

PHP での文字列のバイト配列への変換

PHP では、特に期待するシステムとインターフェイスする場合に、文字列をバイト配列に変換する必要が生じることがあります。バイナリ データ形式。

GetBytes() で同等PHP

Java の getBytes() メソッドと同様に、PHP はこのタスクを実行する unpack() 関数を提供します。文字列の Unicode コード ポイントを表すバイト配列を返す getBytes() とは異なり、unpack() を使用すると、カスタム形式を指定して特定のデータを抽出できます。

文字列を整数配列にアンパックする

文字列のバイト値を表す整数配列を取得するには、次の unpack() を使用します。 format:

$byte_array = unpack('C*', $string);

フォーマット文字列 'C*' は、文字列のバイト値を表す一連の符号なし文字 (範囲 [0, 255]) を解凍することを示します。

文字列の例を見てみましょう: 「足の速いキツネは怠惰な茶色の犬を飛び越えました。」上記のアプローチを使用すると、対応するバイト配列を取得できます。

$string = "The quick fox jumped over the lazy brown dog";
$byte_array = unpack('C*', $string);

var_dump($byte_array);

出力:

array(44) {
  [1] => int(84)
  [2] => int(104)
  [3] => int(101)
  [4] => int(32)
  [5] => int(113)
  [6] => int(117)
  [7] => int(105)
  [8] => int(99)
  [9] => int(107)
  [10] => int(32)
  [11] => int(102)
  [12] => int(111)
  [13] => int(120)
  [14] => int(32)
  [15] => int(106)
  [16] => int(117)
  [17] => int(109)
  [18] => int(112)
  [19] => int(101)
  [20] => int(100)
  [21] => int(32)
  [22] => int(111)
  [23] => int(118)
  [24] => int(101)
  [25] => int(114)
  [26] => int(32)
  [27] => int(116)
  [28] => int(104)
  [29] => int(101)
  [30] => int(32)
  [31] => int(108)
  [32] => int(97)
  [33] => int(122)
  [34] => int(121)
  [35] => int(32)
  [36] => int(98)
  [37] => int(114)
  [38] => int(111)
  [39] => int(119)
  [40] => int(110)
  [41] => int(32)
  [42] => int(100)
  [43] => int(111)
  [44] => int(103)
}

ご覧のとおり、出力配列には、 1 からインデックス付けされた文字列。

以上が「unpack()」を使用して PHP 文字列をバイト配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。