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

PHPで16進数を文字列関数に変換する方法

PHPz
PHPzオリジナル
2023-04-19 09:15:181038ブラウズ

サーバーサイド プログラミング言語として、PHP には、開発者が迅速に開発できるようにする豊富な関数ライブラリがあります。 PHPには16進数を文字列に変換する関数が用意されていますので、以下にその関数を紹介します。

PHP で 16 進数を文字列に変換する関数は hex2bin() です。その機能は、16 進数を文字列に変換することです。

サンプルコード:

$string = hex2bin('546869732069732061207465737420737472696e67');
echo $string;

実行結果:

これはテスト文字列です

上記の例では、関数 hex2bin() は 16 進数の文字列を変換します。 「546869732069732061207465737420737472696e67」は、「これはテスト文字列です」という文字列に変換されます。ご覧のとおり、変換された文字列は元の 16 進文字列と同じです。

hex2bin() 関数を呼び出すときに、渡された 16 進数が偶数桁ではない (つまり、2 で割り切れない) 場合、PHP は最後に ' を自動的に追加することに注意してください。文字列 0' の文字を偶数になるように変換して変換します。

サンプルコード:

$string = hex2bin('546869732069732061207465737420737472696e670');
echo $string;

実行結果:

これはテスト文字列です

16進数の文字列「546869732069732061207465737420737472696e670」の末尾の文字「0」はPHPによって自動的に追加されます。

hex2bin() 関数に加えて、PHP には 16 進数を文字列に変換できる次の 2 つの関数があります。

  1. pack() 関数:
    pack ( ) 関数を使用して、16 進数を文字列に変換できます。 hex2bin() 関数とは異なり、pack() 関数はさまざまな形式に従って変換できます。

形式の説明:

H - 16 進文字列 (ハイ エンディアン)
h - 16 進文字列 (ロー エンディアン)
N - unsigned long (ネットワーク バイト オーダー)
n - 符号なし short (ネットワーク バイト オーダー)
V - 符号なし long (ネイティブ バイト オーダー)
v - 符号なし short 整数 (ローカル バイト オーダー)

サンプル コード:

$string = pack("H*", '546869732069732061207465737420737472696e67');
echo $string;

実行結果:

これはテスト文字列です

このコードは hex2bin( ) 関数が同様に使用されるものと同じです。違いは、pack() 関数がさまざまな形式に従って 16 進文字列を解析できることです。

  1. chr() 関数:
    chr() 関数は、指定された ASCII コード値を文字に変換するために使用されます。 1 バイトは 256 個の異なる文字を表すことができるため、1 バイトの 16 進数は ASCII コード値に対応します。したがって、16 進文字列を 2 つの文字グループに分割し、それぞれのグループを対応する ASCII コード値に変換することで、変換された文字列を取得できます。

サンプル コード:

$str = "546869732069732061207465737420737472696e67";
$len = strlen($str);
$res = "";
for ($i = 0; $i < $len; $i += 2) {
    $res .= chr(hexdec(substr($str, $i, 2)));
}
echo $res;

実行結果:

これはテスト文字列です

上記の例では、まず 16 を追加します。文字列 $str はグループとして 2 つの文字に分割されるため、$str の長さは偶数になります。 for ループを通じて各グループを反復処理し、hexdec() 関数を呼び出して 10 進数に変換し、次に chr() 関数を呼び出して対応する文字に変換し、その文字を $res 文字列に追加します。

要約すると、PHP には 16 進数を文字列に変換するさまざまなメソッドが用意されています。開発者は実際のニーズに応じて適切な方法を選択できます。

以上がPHPで16進数を文字列関数に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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