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()
函数进行检查。如果字符串无效,你可以选择处理错误或使用其他方法转换字符串。