2

私はランタイムインテリジェンスソフトウェアプログラムを開発しています。プログラムのバージョン番号を収集するため、各バージョン番号の統計を確認できます。私がこれに関して抱えている問題は、一部のコンピューターが実際のバージョン番号(つまり、0.4)を送信し、他のコンピューターが誤ったバージョン番号(つまり、0.4.0)を送信していることです。次のようなものを使用しても大丈夫かどうか疑問に思いました。

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

これはこの問題を取り除くために機能しますか、それともこれが後でさらに問題を引き起こすだけですか?

4

3 に答える 3

1

これは絶対に問題を引き起こす可能性があります。rtrim文字列の最後に任意の順序で、場合によっては複数回出現する場合は、それらの文字を削除します。1.10 になりますが1.1、これらは必ずしも同じバージョンではありません。

オンラインで見る:ideone

于 2012-07-14T07:22:14.413 に答える
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=='?.?';
于 2012-07-14T07:27:08.363 に答える
0

Mark Byersの回答によると、は使用できませんrtrim()

私はお勧めしpreg_replace()ます:

$ver = '0.4.0';
$pattern = '/^([0-9.]+)\.0$/';
$replacement = '${1}';
echo preg_replace($pattern, $replacement, $ver);

デモ

于 2012-07-14T07:35:59.237 に答える