PHP-将hexdec值转换为版本字符串
我正在使用一个未记录的API,它的版本号为PHP-将hexdec值转换为版本字符串,php,hex,Php,Hex,我正在使用一个未记录的API,它的版本号为hexdecvalue。我希望将其转换为版本控制字符串 实例 API提供以下值:117473280(hexdec('7008000')) 应将其转换为字符串:7.00 我已使用以下函数来执行此操作: function getFirmwareFromDechex($dechex) { if(!empty($dechex) || $dechex !== '0') { $dechex = dechex($dechex);
hexdec
value。我希望将其转换为版本控制字符串
实例
API提供以下值:117473280
(hexdec('7008000')
)
应将其转换为字符串:7.00
我已使用以下函数来执行此操作:
function getFirmwareFromDechex($dechex) {
if(!empty($dechex) || $dechex !== '0') {
$dechex = dechex($dechex);
$dechex = substr($dechex, 0, 3);
$dechex = number_format($dechex / 100, 2);
return $dechex;
}
return false;
}
echo getFirmwareFromDechex('117473280');
这是有效的。但是,当它必须转换版本10.00时,它会将其转换为1.00
如何使函数与更高版本号(如10.00)兼容
使现代化
在查看了第三方如何在其网站上显示这些版本后,似乎我确实需要用0填充左边的数字。我认为十六进制字符串应该是8字节长,所以用0(
str_pad()
withstr_pad_left
)填充开头,然后取前4个字符
function getFirmwareFromDechex($dechex) {
if(!empty($dechex) || $dechex !== '0') {
$dechex = str_pad(dechex($dechex), 8, 0, STR_PAD_LEFT);
$dechex = substr($dechex, 0, 4);
$dechex = number_format($dechex / 100, 2);
return $dechex;
}
return false;
}