PHP は、Web 開発で広く使用されている強力なサーバーサイド スクリプト言語です。 PHP の開発プロセスでは、データの変換と処理に対処する必要があることがよくあります。この記事では16進数のデータを配列に変換する方法を紹介します。
まず第一に、16 進数とは何かを理解する必要があります。簡単に言うと、16 進数は 16 個の数値、つまり 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F を使用して値を表す数値体系です。 。このうち、A~Fはそれぞれ10~15を表します。
PHP では、hex2bin() 関数を使用して 16 進数を文字列に変換できます。たとえば、次のコードは 16 進文字列「48656C6C6F20576F726C64」を文字列「Hello World」に変換します。
echo hex2bin("48656C6C6F20576F726C64");
次に、文字列を配列に変換する必要があります。 str_split() 関数を使用して文字列を個々の文字に分割し、ord() 関数を使用して文字を ASCII コードに変換できます。たとえば、次のコードは文字列「Hello World」を整数の配列に分割します。
$str = "Hello World"; $chars = str_split($str); $nums = array(); foreach ($chars as $char) { $nums[] = ord($char); } print_r($nums);
出力結果は次のようになります。
Array ( [0] => 72 [1] => 101 [2] => 108 [3] => 108 [4] => 111 [5] => 32 [6] => 87 [7] => 111 [8] => 114 [9] => 108 [10] => 100 )
16 進文字列を文字列に変換した場合、上記の 2 つのコード スニペットを一緒に使用できます。たとえば、次のコードは 16 進文字列「48656C6C6F20576F726C64」を整数配列に変換します。
$hex_str = "48656C6C6F20576F726C64"; $str = hex2bin($hex_str); $chars = str_split($str); $nums = array(); foreach ($chars as $char) { $nums[] = ord($char); } print_r($nums);
出力結果は次のとおりです。
Array ( [0] => 72 [1] => 101 [2] => 108 [3] => 108 [4] => 111 [5] => 32 [6] => 87 [7] => 111 [8] => 114 [9] => 108 [10] => 100 )
上記のメソッドを使用することに加えて、unpack を使用することもできます。 () 関数。 unpack() 関数は、文字列を複数の値に解凍し、連想配列または数値インデックス付き配列を返すことができます。 H* フォーマット文字を使用できます。これは、16 進文字列を 16 進数に変換し、それをバイナリ文字列にパッケージ化することを意味します。たとえば、次のコードは 16 進数の文字列「48656C6C6F20576F726C64」を整数配列に変換します。
$hex_str = "48656C6C6F20576F726C64"; $bin_str = pack("H*", $hex_str); $nums = unpack("C*", $bin_str); print_r($nums);
出力結果は次のとおりです。
Array ( [1] => 72 [2] => 101 [3] => 108 [4] => 108 [5] => 111 [6] => 32 [7] => 87 [8] => 111 [9] => 114 [10] => 108 [11] => 100 )
unpack() 関数を使用する方がより簡潔で効率的ですが、 unpack() 関数の関数名にあるアスタリスク (*) は、任意の形式ではなく、すべての要素を解凍することを意味することに注意してください。
概要: この記事では、16 進データを配列に変換する方法を紹介します。 hex2bin() 関数を使用して 16 進数を文字列に変換し、次に str_split() 関数を使用してそれを個々の文字に分割し、最後に ord() 関数を使用して文字を ASCII コードに変換できます。これに加えて、unpack() 関数を使用して変換をより効率的に行うこともできます。これらの方法は実際の開発において非常に役立ちます。
以上がPHPで16進数データを配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。