PHP

php hexdec怎样处理非十六进制

小樊
81
2024-11-23 13:33:19
栏目: 编程语言

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

0
看了该问题的人还看了