Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Numery tel. stacjonarne i kom. - rozróżnianie
Forum PHP.pl > Forum > PHP
luck
Chciałbym spytać, czy ktoś z użytkowników forum nie dysponuje jakimś sprytnym mechanizmem sprawdzania, czy określony numer telefonu jest numerem stacjonarnym, czy komórkowym. Nie zależy mi na określaniu operatora, jedynie rozgraniczeniu tych dwóch rodzajów numerów (stacjonarny i komórka). Będę wdzięczny za podpowiedź w jaki sposób mogę to osiągnąć.
Pozdrawiam.
dyktek
wyrażenia regularne i np. preg-match
luck
Dzięki, ale tego raczej nietrudno się domyślić smile.gif Chodziło mi bardziej o konkretny przykład, tzn. jakie regexpy zastosować, żeby wyłapać interesujące mnie różnice między numerami komórek i stacjonarnymi.
dyktek
  1. <?php
  2. $zrodlo = '985-454-345';
  3.  
  4. $wyr = '/^(d{3})-(d{3})-(d{3})$/';
  5.  
  6. if(preg_match($wyr, $zrodlo)){  
  7. echo $zrodlo;
  8. }
  9. ?>


to wyłapie telefon w formacie 096-456-456 nie wiem jaki przyjąłeś format kom bo jest tez 0-000-000-000 ale to łatwo edytować

wyrazenia_regularne
Vomit
No i mozesz ewentualnie sprawdzac ilosc cyfr.

Komorka to przynajmniej 9, a stacjonarny 7
orson
witam

od niedawna numer telefonu musi być poprzedzony numerem kierunkowym ... więc po tym odpada ... zresztą po zapisaniu numery komórkowego w innym formatowaniu 0 501 123 456 = 0 50 112 34 56 wychodzi normalny numer "stacjonarny" z kierunkowym 0-50 ...

pozdrawiam
luck
Cytat(orson @ 12.06.2006, 19:14 ) *
po zapisaniu numery komórkowego w innym formatowaniu 0 501 123 456 = 0 50 112 34 56 wychodzi normalny numer "stacjonarny" z kierunkowym 0-50 ...

Dziękuję za wszystkie propozycje, jednak zgadzam się z Orsonem - na podstawie długości raczej nie da się wychwycić różnicy stacjonarny/komórka. Ale przecież np. w dawnych bramkach sms było coś takiego, że po wpisaniu początku numeru skrypt rozpoznawał operatora sieci. Być może to byłoby jakieś wyjście? Jeśli numer dałby się przypisać do któregokolwiek operatora, to jest komórką, w przeciwnym wypadku - stacjonarnym numerem.
dyktek
mozesz narzucić pewne formaty uzytkownikom i bez przeładowania sprawdzac format przy uzyciu js
luck
W sumie obecnie jedynym wymogiem jest, aby numer zaczynał się od kierunku kraju, czyli np. dla Polski 48*********. Wydaje mi się, że jeśli chodzi o polskie sieci komórkowe, to numery zaczynają się zawsze od 4050*******, 4860******* lub 48888******. Są jeszcz jacyś "Sami swoi" czy coś, ale nie wiem czy oni mają własną numerację. W każdym razie bazując na prefixie powinienem być w stanie "odfiltrować" numery komórek, bo chyba w telefonii stacjonarnej nie mamy regionu z numerem kierunkowym 50 lub 60. Dziękuję wszystkim za pomoc. Pozdrawiam.
cyphelf
Obecnie trzeba by sprawdzać pierwsze dwie cyfry, ponieważ od dłuższego czasu są w użyciu takie klasy numerów komórkowych jak np. 69x-xxx-xxx czy 66x-xxx-xxx. W sumie to można by założyć, że numer o początku innym niż dostępny u nas numer kierunkowy jest numerem komórkowym.
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.