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
十六進制格式的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,因為開頭沒有合法字符
?>
建議在正式使用前對輸入值進行驗證或使用正則判斷其合法性。