2016-04-16 13 views
-2

ich für PHP-Funktionen suchen, die Zahlen klassische Software-Version erhöhen können ...PHP-Funktionen, um klassische Software-Versionsnummern zu erhöhen?

Beispiel

<?php 

$a_version_number = '3.1.2'; 

$c = version_increment($a_version_number); 
echo 'Next Version: ' . $c . "\n"; 

Irgendwelche Ideen auf, wo ich Funktionen finden können, das tun würde, was ich tue, bin auf der Suche nach?

+2

Warum schreibst du nicht selbst? –

+0

Da Sie nicht wissen können, was die letzte Version war, ohne auf eine statische Zahl zu verzichten, rate ich eine version_increment ist wirklich das einzige Ding von dieser Frage –

+0

Grund, warum ich nicht sofort schreibe mein eigenes ist einfach, wurde mir einmal gesagt , dass ein großartiger Programmierer den Code anderer Leute benutzt ... auch wenn ich den Code anderer Leute sehe, kann ich einen breiteren Überblick darüber bekommen, wie die Leute anders programmieren –

Antwort

2

Hier ist eine einzelne Funktion, die beides tun wird. Wenn das zweite Argument eine positive Zahl ist, wird es erhöht. Wenn es eine negative Zahl ist, dekrementiert es:

function version_update($i, $inc_dec){ 
    $a = explode('.', $i); 
    if($inc_dec > 0){ 
     $a[count($a)-1]++; 
    } elseif ($inc_dec < 0){ 
     $a[count($a)-1]--; 
    } 
    return implode('.', $a); 
} 

$b = version_update($a_version_number, -1); 
echo 'Previous Version: ' . $b . "\n"; 

$c = version_update($a_version_number, 1); 
echo 'Next Version: ' . $c . "\n"; 
3

Vor Jahren habe ich diese Funktion geschrieben. Silly etwas eingeschränkt, aber es funktioniert:

function increment_version($version) 
{ 
    $parts = explode('.', $version); 

    if ($parts[2] + 1 < 99) { 
     $parts[2]++; 
    } else { 
     $parts[2] = 0; 
     if ($parts[1] + 1 < 99) { 
      $parts[1]++; 
     } else { 
      $parts[1] = 0; 
      $parts[0]++;   
     } 
    } 

    return implode('.', $parts); 
} 

Beispiele:

increment_version('1.2.3');  // output: 1.2.4 
increment_version('1.2.99');  // output: 1.3.0 
increment_version('1.99.99'); // output: 2.0.0 
increment_version('99.99.99'); // output: 100.0.0 

ich nicht eine Abnahme Version haben, sollte aber einfach zu implementieren sein.