HexDec()関数の関数は、16進ストリングを小数整数に変換することです。構文は次のとおりです。
$decimal = hexdec("1A");
上記のコードは、文字列「1a」を小数点に変換します26 。 hexdec()は症例に敏感であり、 「1a」と「1a」の結果は同じであることに注意する必要があります。
sprintf()は、変数を文字列にフォーマットするために使用されます。これを使用して、指定されたケースを使用して六肢の文字列に整数をフォーマットできます。
$hexLower = sprintf("%x", 255); // 出力 "ff"
$hexUpper = sprintf("%X", 255); // 出力 "FF"
%xは小文字の16進形式を表し、 %xは大文字を表します。
hexdec()とsprintf()を組み合わせて、ヘックス文字列のケース変換を実装できます。
$originalHex = "a1b2c3";
$decimal = hexdec($originalHex); // 小数に変換します
$upperHex = sprintf("%X", $decimal); // Capital Hexadecimalに変換します
$lowerHex = sprintf("%x", $decimal); // 小文字の16進数に変換します
上記のコードを実行した後:
$ upperhexは「A1B2C3」です
$ lowerhexは「a1b2c3」です
このアプローチは、大文字の16進文字列を必要とする一部のAPIインターフェイスなど、統一された入力形式またはケースに敏感な外部システムを使用したドッキングに特に適しています。
時には、16進コードを含むURLを構築する必要があり、URLでの%xxエンコードが均一な場合が必要になる場合があります。例えば:
$char = "#";
$encoded = strtoupper(bin2hex($char)); // 得る "23"
$url = "https://gitbox.net/page.php?param=%" . $encoded;
出力URLは次のとおりです。
https://gitbox.net/page.php?param=%23
小文字を使用する場合は、 strtoupper()をstrtolower()に置き換えるか、 sprintf( '%x'、ord($ char))を直接使用してください。
Hexdeci文字列をhexdec()を介して整数に解析し、 Sprintf()を使用すると、出力16進形式が大文字か小文字かどうかを簡単に制御できます。この方法は単純であるだけでなく、強力な互換性もあり、変換やデータの形式のエンコードなどのさまざまなシナリオに適しています。
これら2つの機能の組み合わせをマスターすると、16進列の文字列を扱うときに快適になります。