Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Numery telefonu
Forum PHP.pl > Forum > Przedszkole
RaVq3K
Witam serdecznie mam tablicę z numerami telefonu oraz tablicę prefiksów stacjonarnych ale nie wiem jak sprawdzić który numer to komórka a który to stacjonarny
wicek
NUmery różnią się ilościami cyfr , więc pobieraj każdy numer z tablicy i sprawdzaj jaką ma długość znaków.
Co potem chcesz z tymi numerami zrobić wyświetlić,pogrupować ?
RaVq3K
Jeśli nie ma +48 a dają np, 71 to też jest 9 cyfr więc nie mogę sprawdzać ilością cyfr tylko prefiksami

Chce tylko obliczyć ile jest tego a ile tego
wicek
A jest to tablica z prefiksami operatorów czy kierunkowymi ?
RaVq3K
$prefiksy = array(12,13,14,15,16,17,18,22,23,24,25,29,32,33,34,41,42,43,44,46,48
,52,54,55,56,58,59,61,62,63,65,67,68,71,74,75,76,77,81,82,83,84,85,86,87,89,91,9
4,95);
wicek
Wydaje mi się iż dwie pierwsze cyfry prefiksów operatorów sieci komórkowych w polsce są inne niż kierunkowe linii stacjonarnych.


http://pl.wikipedia.org/wiki/Prefiksy_GSM

dla porownania.
KR2615
Weź pozbądź się wszystkich innych znaków niż cyfry z ciągu, weź 8 i 9ty znak od końca i sprawdź, czy znajduje się w tablicy. Prościej i skuteczniej się chyba nie da smile.gif
Pyton_000
ja mam u siebie coś takiego prymitywnego:
  1. static function getLocalPhonePrefix(){
  2. // Prefiksy numerów stacjonarnych
  3. return array(
  4. 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 29, 32, 33, 34, 41, 42,
  5. 43, 44, 46, 48, 52, 54, 55, 56, 58, 59, 61, 62, 63, 65, 67, 68, 71,
  6. 74, 75, 76, 77, 81, 82, 83, 84, 85, 86, 87, 89, 91, 94, 95);
  7. }
  8.  
  9. public function localPhone($mobile) {
  10. $isValid = true;
  11.  
  12. // Sprawdzamy długośc telefonu po usunięciu wszystkich nienumerycznych znaków
  13. $mobile = preg_replace('/[^0-9]/', '', $mobile);
  14. if(strlen($mobile) < 9) {
  15. $isValid = false;
  16. }
  17.  
  18. // // Wywalamy 0 z początku numeru
  19. $mobile = ltrim($mobile, '0');
  20. if (strlen($mobile) === 11) {
  21. // Wywalamy prefix krajowy 48 z początku
  22. $mobile = substr($mobile, 2);
  23. }
  24.  
  25. if(strlen($mobile) === 9) {
  26. $prefix = substr($mobile, 0, 2);
  27. if(!in_array($prefix, self::getLocalPhonePrefix())) {
  28. $isValid = false;
  29. }
  30. }
  31.  
  32. return $isValid;
  33.  
  34. }
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-2025 Invision Power Services, Inc.