我正在开发一个运行时智能软件程序。它收集程序的版本号,以便您可以查看每个版本号的统计信息。我遇到的问题是有些计算机正在发送实际版本号(即:0.4),而其他计算机正在发送错误的版本号(即:0.4.0)。我想知道如果我使用类似的东西是否可以。
$version = rtrim($version, ".0");
这是否可以解决这个问题,或者这会在未来发生什么问题?
答案 0 :(得分:1)
这绝对会导致问题。如果这些字符以任何顺序出现在字符串的末尾,并且可能多次出现,则rtrim
会删除这些字符。因此1.10
将成为1.1
,但这些版本不一定相同。
在线查看:ideone
答案 1 :(得分:0)
如果有一个“实际版本”号码,你怎么称呼它,比如5.0,该怎么办?
我建议您使用正则表达式,可能是preg_match()函数:
$tokens=preg_match($version,'/^([0-9]+)\.([0-9]+)/',$tokens);
if (3=count($tokens))
$actualVersion=sprintf('%s.%s',$tokens[1],$tokens[2]);
else $actualVersion=='?.?';
答案 2 :(得分:0)
根据 Mark Byers '回答,您无法使用rtrim()
。
我建议preg_replace()
:
$ver = '0.4.0';
$pattern = '/^([0-9.]+)\.0$/';
$replacement = '${1}';
echo preg_replace($pattern, $replacement, $ver);