DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Parsiranje telefonskog broja (http://www.devprotalk.com/showthread.php?t=11350)

mileusna 25. 12. 2012. 21:34

Parsiranje telefonskog broja
 
Možda neko već ima iskustva pa da priupitam, postoji li neka klasa i sl. koja bi pravilno parsirala telefonske brojeve kako bi se razdvojili pozivni za zemlju, lokalni pozivni i broj telefona, dakle da od +3816499234344 dobijem 381 64 99234344 razdvojeno. Naravno, da su svi na 381 bilo bi jednostavno, jesu većinom, ali ne svi. :) Takođe nema nekog pravila, brojevi mogu biti i samo lokalni, tipa 064444333 bez poziva za zemlju, ili npr. neko piše 00 na početku kao izlaz i sl.

Dakle dobijam raznorazne brojeve, a nekako bi da ih formatriram što bolje i uniformno. Ima neko neku ideju ili klasu ili da krenem peške od početka da pravim neki konvertor/parser?

kickloop 25. 12. 2012. 23:48

uh uh. ja sam odustao svojevremeno od te ideje. Ima i problem što broj može da bude šestocifren, sedmocifren. Učinilo mi se da nema ni jedna konstanta za koju možeš da se uhvatiš.

Ako nađeš neko rešenje budi ljubazan pa podeli :)

ivanhoe 26. 12. 2012. 05:20

ja sam imao neke perl klase koje su prepoznavale tel. brojeve, uglavnom su bile uspesne... probacu da ih pronadjem na backupu, nisam sa tim radio godinama

U susutini nije to nuklearna fizika (ali je dosadan posao), samo treba pokriti vecinu standardnih nacina pisanja i samo se na njih koncentrise, ostale slucajeve samo markiras i resavas ih rucno. Po nekom mom iskustvu cim ima vise od 20-tak tih za rucno resavanje, mozes da nadjes neko pravilo i malo doradis logiku da ih handluje automatski, tako da na kraju kroz par iteracija skripta "nauci" da odradi 99% slucajeva...

EDIT: Ja sam koristio podatke sa ovog linka da bih znao koliko cifara ide u numeraciju u kojoj zemlji. To su zvanicni podaci za sve zemlje, a ti pokupis naravno one koje te zanimaju (meni je npr. trebala samo EU i US). Pobrisi sve delimiters i onda mozes da proveris relativno brzo na osnovu broja cifara jel to samo broj ili ima i area code ili je full broj. Za granicne slucajeve proveris jel postoji taj country i area code i da li se broj preostalih cifara uklapa u numeraciju... ne mozes uvek da budes 100% siguran, ali to cesto ne mozes ni rucno :)

tasmaniski 26. 12. 2012. 11:45

Ti hoćeš da parsiraš Long number - http://en.wikipedia.org/wiki/Long_number

Klasa za tako nesto ne postoji, ali je uvek možeš napraviti. Prvo ti treba lista svih CountryCod-ova
http://www.wtng.info/wtng-ctn.html (-npr.) posle za svaki CountryCode treba da imaš listu operatera u toj zemlji, to možeš uzeti ako parsiraš informacija sa nekih od sajtova kao što je clickatell.com i sl. ima ih dosta.

Postoji zvaničan format brojeva koji je u formatu 381631234567, bez + bez ' ' ili bilokakvih karaktera pa trimuj sve svoje brojeve. Standard se može se naći negde na vikipediji.

Kad imas sve te informacije možeš krenuti da pišes klasu koja ih koristi :) ....
Ceo broj možđe imati od 6 do 16 cifara, nisam 100% siguran i to možeš naći na wikipediji.

ivanhoe 26. 12. 2012. 16:46

a ima i ova google klasa, ali samo za javu ili js..

http://code.google.com/p/libphonenumber/

jablan 26. 12. 2012. 17:04

Ja našao dva gema za ruby, mora da ima i nešto za PHP, u krajnjoj liniji, možeš "pozajmiti" config neke od postojećih pa odraditi samo kod :)

https://github.com/habermann24/phone...ta/regions.yml

mileusna 27. 12. 2012. 01:40

Citat:

Originalno napisao ivanhoe (Napišite 109554)
a ima i ova google klasa, ali samo za javu ili js..

http://code.google.com/p/libphonenumber/

Izgleda da je neko preradio i za PHP:

https://github.com/davideme/libphonenumber-for-PHP

Videću kako radi.


Vreme je GMT +2. Trenutno vreme je 22:02.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.