ホームページ >バックエンド開発 >PHPの問題 >PHPで16進数をASCIIコードに変換する方法

PHPで16進数をASCIIコードに変換する方法

藏色散人
藏色散人オリジナル
2021-07-22 10:20:373709ブラウズ

php で 16 進数を ASCII コードに変換する方法: 1. bex2bin 関数を使用して 16 進数を ASCII 文字に変換します; 2. Pack 関数を使用して 16 進数を ASCII 文字に変換します。

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

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