當前位置: 首頁> 最新文章列表> 用hexdec 和sprintf 處理大寫與小寫轉換需求

用hexdec 和sprintf 處理大寫與小寫轉換需求

gitbox 2025-05-28

一、 hexdec()函數簡介

hexdec()函數的作用是將十六進製字符串轉換為十進制整數。其語法如下:

 $decimal = hexdec("1A");

以上代碼將字符串"1A"轉換為十進制的26 。需要注意的是, hexdec()不區分大小寫, "1A""1a"的結果是相同的。

二、 sprintf()函數簡介

sprintf()用於將變量格式化為字符串。我們可以使用它將整數格式化為指定大小寫的十六進製字符串:

 $hexLower = sprintf("%x", 255); // 輸出 "ff"
$hexUpper = sprintf("%X", 255); // 輸出 "FF"

%x表示小寫的十六進制格式, %X表示大寫。

三、hexdec 與sprintf 搭配使用

結合hexdec()sprintf() ,我們可以實現任意十六進製字符串的大小寫轉換:

 $originalHex = "a1b2c3";
$decimal = hexdec($originalHex);          // 轉為十進制
$upperHex = sprintf("%X", $decimal);      // 轉為大寫十六進制
$lowerHex = sprintf("%x", $decimal);      // 轉為小寫十六進制

運行以上代碼後:

  • $upperHex"A1B2C3"

  • $lowerHex"a1b2c3"

這種方法尤其適用於統一輸入格式或對接對大小寫敏感的外部系統,比如某些需要大寫十六進製字符串的API 接口。

四、應用示例:URL 編碼中的十六進制大小寫控制

有時我們需要構造包含十六進制編碼的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))

五、總結

通過hexdec()將任意十六進製字符串解析為整數,再藉助sprintf()可以輕鬆控制輸出的十六進制格式是大寫還是小寫。這種方式不僅簡潔,而且兼容性強,適合用於編碼轉換、數據格式化等多種場景。

掌握這兩個函數的組合用法,可以讓你在處理十六進製字符串時更加游刃有餘。