Rozpoznanie telefónneho čísla - drevorubač

Drevorubačská metóda v PHP, bez regulárnych výrazov. Najskôr odstránim medzery. Kód rozpozná 3 typy čísel, viď dole.

<?php

function kontrola($cislo) {
   $cislo = str_replace(" ","",$cislo);
   if (strlen($cislo)==15) { //+...
      if ($cislo[0]!="+") return false;
      for ($i=1; $i<4; $i++) if (!is_numeric($cislo[$i])) { return false; }
      if ($cislo[4]!="(" || $cislo[8]!=")") return false;
      for ($i=5; $i<8; $i++) if (!is_numeric($cislo[$i])) { return false; }
      for ($i=9; $i<15; $i++) if (!is_numeric($cislo[$i])) { return false; }
      return true;
   }   
   for ($i=0; $i<9; $i++) if (!is_numeric($cislo[$i])) { return false; }
   if (strlen($cislo)==9) return true;
   return strlen($cislo)==10 && is_numeric($cislo[9]); //10. prvok
}

echo kontrola("+421 (905) 123 456");
echo kontrola("0915 333 444");
echo kontrola("048 231 564");

?>

Na výstupe budú tri jednotky (true), t.j. všetky čísla vyhovujú.