php で 16 進数を ASCII コードに変換する方法: 1. bex2bin 関数を使用して 16 進数を ASCII 文字に変換します; 2. Pack 関数を使用して 16 進数を ASCII 文字に変換します。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン
16 進数の変換方法アスキーコードはphp?
16 進数を ASCII 文字に変換する
PHP で hex2bin 関数を使用して 16 進数を ASCII 文字に変換します。php5 には bex2bin 関数がありません。今回は、pack 関数を使用して 16 進数を ASCII 文字に変換できます。
bex2bin 関数の構文は次のとおりです:
hex2bin(string)
パラメータ文字列は、変換する必要がある 16 進数です。
pack 関数の構文は次のとおりです:
pack(format,args+)
パラメータの説明:
format: 必須 データをパッケージ化するときに使用される形式を指定します。オプションのパラメータ値:
a - NUL 填充的字符串 A - SPACE 填充的字符串 h - 十六进制字符串,低位在前 H - 十六进制字符串,高位在前 c - signed char C - unsigned char s - signed short(总是16位, machine 字节顺序) S - unsigned short(总是16位, machine 字节顺序) n - unsigned short(总是16位, big endian 字节顺序) v - unsigned short(总是16位, little endian 字节顺序) i - signed integer(取决于machine的大小和字节顺序) I - unsigned integer(取决于machine的大小和字节顺序) l - signed long(总是32位, machine 字节顺序) L - unsigned long(总是32位, machine 字节顺序) N - unsigned long(总是32位, big endian 字节顺序) V - unsigned long(总是32位, little endian 字节顺序) f - float(取决于 machine 的大小和表示) d - double(取决于 machine 的大小和表示) x - NUL 字节 X - 备份一个字节 Z - NUL 填充的字符串 @ - NUL 填充绝对位置
args: オプションで、パックする 1 つ以上のパラメータを指定します。
bex2bin 関数は、16 進数を ASCII 文字に変換します。例は次のとおりです。
$str = '49206c6f7665e4b8ade59bbd'; $str = hex2bin($str); echo $str;
出力結果は次のとおりです:
I love中国
ただし、hex2bin 関数を実行すると、次のエラーが報告される場合があります:
hex2bin(): Hexadecimal input string must have an even length
上記のエラーには 2 つの理由が考えられます:
1: 16 進数の中に 16 進数ではない文字が含まれている可能性があります
2: 16 進数の文字長が奇数です
したがって、次のように書くことができます:
$str = '49206c6f7665e4b8ade59bbd'; $str = @hex2bin($str); if ($str) { echo $str; } else { echo 0; }
16 進数を ASCII 文字に変換する Pack 関数の例は次のとおりです。
$str = '49206c6f7665e4b8ade59bbd'; $str = pack("H*", $str); echo $str;
上記と同様、これは 16 進数を ASCII 文字に変換する最初のステップです。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPで16進数をASCIIコードに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。