ホームページ  >  記事  >  バックエンド開発  >  PHPで16進数データを配列に変換する方法

PHPで16進数データを配列に変換する方法

PHPz
PHPzオリジナル
2023-04-26 09:14:16745ブラウズ

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 サイトの他の関連記事を参照してください。

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