サーバーサイド プログラミング言語として、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 つの関数があります。
形式の説明:
H - 16 進文字列 (ハイ エンディアン)
h - 16 進文字列 (ロー エンディアン)
N - unsigned long (ネットワーク バイト オーダー)
n - 符号なし short (ネットワーク バイト オーダー)
V - 符号なし long (ネイティブ バイト オーダー)
v - 符号なし short 整数 (ローカル バイト オーダー)
サンプル コード:
$string = pack("H*", '546869732069732061207465737420737472696e67'); echo $string;
実行結果:
これはテスト文字列です
このコードは hex2bin( ) 関数が同様に使用されるものと同じです。違いは、pack() 関数がさまざまな形式に従って 16 進文字列を解析できることです。
サンプル コード:
$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 サイトの他の関連記事を参照してください。