我正在開發一個運行時智能軟件程序。它收集程序的版本號,以便您可以查看每個版本號的統計信息。我遇到的問題是有些電腦發送的是實際的版本號(即:0.4),而其他電腦則發送了錯誤的版本號(即:0.4.0)。我在想,如果這將是,如果我用像OK:從版本號中刪除「.0」
$version = rtrim($version, ".0");
將這項工作,以擺脫這個問題的還是什麼這只是導致以後的道路更多的問題?
我正在開發一個運行時智能軟件程序。它收集程序的版本號,以便您可以查看每個版本號的統計信息。我遇到的問題是有些電腦發送的是實際的版本號(即:0.4),而其他電腦則發送了錯誤的版本號(即:0.4.0)。我在想,如果這將是,如果我用像OK:從版本號中刪除「.0」
$version = rtrim($version, ".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=='?.?';
基於馬克拜爾斯的回答,你不能使用rtrim()
。
我建議preg_replace()
:
$ver = '0.4.0';
$pattern = '/^([0-9.]+)\.0$/';
$replacement = '${1}';
echo preg_replace($pattern, $replacement, $ver);
的'0.4.0'最後一段是沒有錯誤的。 0.4.0版本和0.4.1版本之間有區別。 – 2012-07-14 07:23:49
所以是1.0.0版的零是有原因。 – 2012-07-14 07:28:26