Kleines Problem mit der Funktion preg_match

Parantatatam

mag Cookies & Kekse
Hallo,

ich denke mal, dass mein Problem schnell abgearbeitet sein dürfte. Also ich habe gerade eine Funktion geschrieben mit der ich überprüfen kann, ob eine angegeben Version gleich, größer oder kleiner als die installierte PHP-Version ist. Das geht ja ohne Probleme, mein Problem ist jetzt nur, dass man bei einer Versionsangabe ja nur die Ziffern von 0 bis 9 und Punkte angeben darf, was ich versucht habe mit preg_match() zu lösen. Ich persönlich arbeite sehr ungern damit, aber es ist nun mal einfacher als die Syntax anderweitig zu prüfen.

Also das wäre mein Skript. Eigentlich braucht ihr nicht das Ganze, aber da ich mir dachte, dass das vielleicht noch jemanden gebrauchen könnte, poste ich es hier vollständig. Das Problem liegt - wie gesagt - nur bei preg_match():
PHP:
function version($version)
 {
  if(!preg_match('/([0-9\.])/i', $version))
   return FALSE;
  
  $current = explode('.', phpversion());
  $version = explode('.', $version);
  
  foreach($version as $value)
   {
    if($value == '')
     {
      return FALSE;
      break;
     }
   }
  
  $a = count($current);
  $b = count($version);
  
  $iCount = $a;
  
  if($a < $b)
   $iCount = $b;
  
  for($i = 0; $i < $iCount; $i++)
   {      
    if($current[$i] < $version[$i])
     {
      return 1;
      break;
     }
    
    if($current[$i] > $version[$i])
     {
      return -1;
      break;
     }
   }
  
  return 0;
 }
 
Hi,

Dein Ausdruck müsste eine Ziffer oder einen Punkt finden, je nachdem, was zuerst vorkommt und völlig unabhängig davon, was sonst noch in dem String steht.

So sollte es gehen:
Code:
/^[0-9\.]+$/

LG
 
Oh, ich denke mal, ich sollte mich noch intensiver mit Regular Expressions auseinander setzen. Aber danke kuddeldaddeldu, das war es :-)

Thema erledigt!
 
an Gumbo: Nein, die kannte ich noch nicht. Super, dass so was schon von PHP zur Verfügung gestellt wird - man müsste es nur wissen :-)
 
Zurück