hexdec()
是 PHP 中的一個函數,用于將十六進制字符串轉換為十進制數值。如果傳遞給 hexdec()
的字符串包含非十六進制字符,該函數會返回 INF
(無窮大)或 -INF
(負無窮大),具體取決于字符串的起始字符。
為了確保 hexdec()
只處理有效的十六進制字符,你可以在調用該函數之前對字符串進行驗證。以下是一個示例函數,用于檢查字符串是否僅包含有效的十六進制字符:
function is_hex($string) {
return preg_match('/^[0-9A-Fa-f]+$/u', $string);
}
使用此函數,你可以確保傳遞給 hexdec()
的字符串僅包含有效的十六進制字符,從而避免返回 INF
或 -INF
。例如:
$hex_string = "1A3F"; // 有效的十六進制字符串
if (is_hex($hex_string)) {
$decimal_value = hexdec($hex_string);
echo "Decimal value: " . $decimal_value; // 輸出:Decimal value: 6719
} else {
echo "Invalid hexadecimal string.";
}
如果你不確定字符串是否僅包含十六進制字符,可以在調用 hexdec()
之前使用 is_hex()
函數進行檢查。如果字符串無效,你可以選擇處理錯誤或使用其他方法轉換字符串。