2012-07-14 4 views
2

나는 런타임 인텔리전스 소프트웨어 프로그램을 개발 중이다. 프로그램의 버전 번호를 수집하므로 각 버전 번호에 대한 통계를 볼 수 있습니다. 이 문제는 일부 컴퓨터가 실제 버전 번호 (예 : 0.4)를 보내고 다른 컴퓨터가 잘못된 버전 번호 (예 : 0.4.0)를 보내고 있다는 문제가 있습니다.버전 번호에서 ".0"제거하기

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

이 작업이이 문제를 제거 할 것인가 또는이 그냥 나중에 길 아래에 더 많은 문제의 원인이 무엇을 : 내가 좋아하는 뭔가를 사용하는 경우 확인 될 경우 궁금 해서요?

+2

0.4.0''의 마지막 세그먼트가 잘못된 없습니다. 0.4.0 버전과 0.4.1 버전 사이에는 차이점이 있습니다. –

+0

이고 버전 1.0.0이기 때문에 이유가 있습니다. –

답변

1

이것은 절대적으로 문제를 일으킬 수 있습니다. rtrim은 임의의 순서로 또는 가능하면 여러 번 문자열의 끝에 나타날 경우 해당 문자를 제거합니다. 따라서 1.101.1이되지만 반드시 동일한 버전 일 필요는 없습니다. 당신은 5.0 말하자면, 그것은 전화를하는 방법, ideone

+0

------------------------------------------------- ----- – arkascha

+0

더 중요하게는 10.01이 될 것입니다. 101 –

+0

기다림, rtrim', derp. 신경 쓰지 마세요 ... –

0

을 그리고 당신은 "실제 버전"숫자가있는 경우 어떻게해야합니까 :

온라인을 참조하십시오?

$tokens=preg_match($version,'/^([0-9]+)\.([0-9]+)/',$tokens); 
if (3=count($tokens)) 
    $actualVersion=sprintf('%s.%s',$tokens[1],$tokens[2]); 
else $actualVersion=='?.?'; 
0

마크 바이어스 '답변에 따라, 당신은 rtrim()을 사용할 수 없습니다

나는 아마는 preg_match() 함수 대신 정규식을 사용하는 것이 좋습니다.

나는 preg_replace() 추천 :

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

DEMO

관련 문제