我需要转换我不知道是否
的数据到十进制格式。
到目前为止,我已尝试使用
bindec()
将二进制数据转换为十进制数据hexdec()
将十六进制转换为十进制但是,我需要事先确定一个数字是十进制还是十六进制。
有办法吗?
答案 0 :(得分:1)
你可以遇到的任意基础之间的唯一区别是文字。在PHP中,每个数字都存储为整数或浮点数。
$binary = 0b1100; // stored as 12
$oct = 014; // stored as 12
$hex = 0xC; // stored as 12
但是,如果您的数据是字符串,则可以使用正则表达式来确定其类型,而不是使用hexdec()
,octdec()
,bindec()
函数将它们转换为十进制。
或者,您可以使用intval()
函数,该函数通过字符串的格式自动检测类型:
intval("0b000"); // bin->dec conversion
intval("014"); // oct->dec conversion
intval("0xC"); // hex->dec conversion
intval("12"); // str->dec cast!!
intval("asd"); // str->dec cast!!
注意未格式化的字符串,因为intval()会将所有内容都变成一个数字。