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

PHPで16進数を対応する文字に変換する方法

PHPz
PHPzオリジナル
2023-04-12 19:07:521433ブラウズ

PHP には 16 進文字を変換する関数が用意されており、16 進文字列を対応する文字に簡単に変換できます。この記事では、この機能の使い方と注意点を紹介します。

1. 関数の紹介

PHP には、16 進数の文字列を文字に変換するために使用できる 2 つの関数が用意されています:

  1. hex2bin() 関数 : 16 進数の文字列をバイナリに変換します弦。
  2. pack() 関数: 1 つ以上の整数、浮動小数点数、または文字列をバイナリ文字列にパックします。

2. hex2bin() 関数の使用法

構文: hex2bin($hexstr)

関数: 16 進文字列を対応するバイナリ文字列に変換します。

サンプルコード:

$hexstr = '616263';
$binstr = hex2bin($hexstr);
echo $binstr;

出力結果:

abc

3.pack()関数の使い方

構文:pack($format, $data1, $data2, ...)

役割: 1 つ以上の整数、浮動小数点数、または文字列をバイナリ文字列にパックします。

$format パラメータ: パッケージ化形式を指定します。詳細については、以下の表を参照してください。

#形式説明#a#Aスペース入り文字列h16 進文字列 (下位の数字が最初)H16 進文字列 (上位から順)c署名文字1 バイトの空白を埋めます##C署名のない文字sSigned short (16 ビット、エンディアンはホストに依存) サンプルコード: 出力結果:
abc
4. 注意事項
NUL パディング文字 文字列
#xxx
#S Unsigned short integer (16 ビット、big および small エンディアンはホストに依存)
n 符号なし short 整数 (16 ビット、ビッグ エンディアン)
v 符号なし short 整数(16 ビット、リトル エンディアン)
i 符号付き整数型 (32 ビット、ビッグ エンディアンとスモール エンディアンはホストに依存)
I 符号なし整数型 (32 ビット、ビッグ エンディアンとスモール エンディアンはホストによって異なります)
l 符号付き長整数 ( 32 ビット、エンディアンはホストに依存します)
L 符号なし長整数 (32 ビット、ビッグ エンディアンとスモール エンディアンはホストに依存します)
N 符号なし長整数 (32 ビット、ビッグ エンディアン) 順序)
V 符号なし長整数 (32 ビット) 、リトルエンディアン)
f 単精度浮動小数点数
d 倍精度浮動小数点数
$hexstr = '616263';
$binstr = pack('H*', $hexstr);
echo $binstr;

hex2bin() function および pack() 関数は、PHP5.4 以降でのみサポートされます。

hex2bin() 関数と Pack() 関数のパラメータは、偶数桁の 16 進文字列である必要があります。そうでない場合は、エラーが報告されます。

pack() 関数の最初のパラメーターはパッケージ化形式を指定する必要があり、一般にエンディアンはターゲット エンコーディングに基づいて選択する必要があります。

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

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