當前位置: 首頁> 最新文章列表> 使用hexdec 解析十六進制的時間戳或ID

使用hexdec 解析十六進制的時間戳或ID

gitbox 2025-05-28

什麼是hexdec()

hexdec()是PHP 內置的函數之一,其作用是將十六進製字符串(以字母和數字組成,0-9, af)轉換為十進制整數。這對於處理某些外部系統、日誌記錄或數據庫中的數據特別有用,尤其是當這些數據以十六進制形式傳遞或存儲時。

函數簽名:

 int hexdec(string $hex_string)

解析十六進制時間戳示例

假設我們接收到一個十六進制格式的時間戳,例如:

 $hexTimestamp = '5f4dcc3b';

我們希望將其轉化為人類可讀的日期時間。

 <?php

$hexTimestamp = '5f4dcc3b';
$decimalTimestamp = hexdec($hexTimestamp);

echo "十六進制時間戳:$hexTimestamp\n";
echo "十進制時間戳:$decimalTimestamp\n";
echo "可讀時間:".date('Y-m-d H:i:s', $decimalTimestamp)."\n";

?>

輸出可能類似:

 十六進制時間戳:5f4dcc3b
十進制時間戳:1598887867
可讀時間:2020-08-31 16:51:07

在URL參數中使用十六進制ID

十六進制格式的ID經常被用於生成鏈接,比如某個資源的唯一標識符:

 <?php

$hexId = '1a2b3c4d';
$decimalId = hexdec($hexId);

$url = "https://gitbox.net/resource.php?id=$decimalId";

echo "原始十六進制ID:$hexId\n";
echo "轉換後的URL:$url\n";

?>

生成的鏈接將具有更易於識別和處理的十進制ID:

 原始十六進制ID:1a2b3c4d
轉換後的URL:https://gitbox.net/resource.php?id=439041101

這種轉換在處理短鏈接、API參數、日誌分析或數據庫查詢時都非常實用。

錯誤處理提示

雖然hexdec()是個非常直接的函數,但使用時應注意輸入值的合法性。例如,非十六進製字符將被忽略,可能導致意料之外的結果:

 <?php

$badHex = 'zz123'; // 非法字符
echo hexdec($badHex); // 輸出為0,因為開頭沒有合法字符

?>

建議在正式使用前對輸入值進行驗證或使用正則判斷其合法性。