从版本号中删除“.0”

时间:2012-07-14 07:19:04

标签: php string statistics version

我正在开发一个运行时智能软件程序。它收集程序的版本号,以便您可以查看每个版本号的统计信息。我遇到的问题是有些计算机正在发送实际版本号(即:0.4),而其他计算机正在发送错误的版本号(即:0.4.0)。我想知道如果我使用类似的东西是否可以。

$version = rtrim($version, ".0");

这是否可以解决这个问题,或者这会在未来发生什么问题?

3 个答案:

答案 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);

DEMO