Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie w stringu numeru telefonu
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
KR2615
Witam

Poszukuję narzędzia, które w stringu poszuka numer telefonu i poda go w 9-cio cyfrowej postaci. Strongi mają równy format, np:
  1. $str1 = "Mój numer telefonu to 512 02 03 04";
  2. $str2 = "512 003 404";
  3. $str3 = "+48722444333";
  4. $str4 = "022 512 4723";
  5. $str5= "512552233 xD";


Jedynym własciwym formatem jest 512003404, 722444333 itd.

Najpierw myślałem o wycinaniu wszystkich spacji i plusów i braniu 9-ciu ostatnich znaków stringa ale to chyba nie do końca idiotoodporne. Jest jakiś sposób żeby ze stringa wydobyć tylko same cyfry?

Z góry dzięki za podpowiedzi a może nawet i gotowe rozwiązania.
Turson
  1. preg_match_all('!\d+!', $str1, $matches);
aniolekx
Przynajmniej dla tych przykładów poniżej działa, można się tym jeszcze pobawić smile.gif


Kod
function strToPhoneNumber($string){
  $string = preg_replace('#(-|\s|\.)#', '', $string); #usuwa spacje myślnik i kropkę
  $string = preg_replace('#(\+[0-9]{2})#', '', $string); #usuwa numer międzynarodowy
  preg_match_all('#[1-9]{1}[0-9]{8,8}#', $string, $matches); #szuka numerów 9 cyfrowych z pominięciem pierwszego zera.
  return isset($matches[0]) ? $matches[0] : false;
}

    $str[] = "Mój numer 1 telefonu to 512020304 512 02 03 18";
    $str[] = "Mój numer 1 telefonu to 512 02 03 06 i numer 2 (42) 631 14 18";
    $str[] = "512.003.404";
    $str[] = "+48 722.444.333";
    $str[] = "022 512-47-23";
    $str[]= "512552233 haha.gif";
    $str[]= "0512552233 +48 42 631 12 66 haha.gif";
    
foreach ($str as $number)  {
   var_dump(strToPhoneNumber($number)) . '<br />';
}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.