PHP: Formatera telefonnummer
2013-06-10 - telefonnummer, php
0
Jag hade ett behov av att normalisera telefonnummer i en lista som var ifyllda av användare, så dom såg lite hur som helst ut. Så jag skrev en funktion för att normalisera telefonnummer som ser ut så här:
<?     function phone_number($nr$formats false){         if (!$GLOBALS["areacodes"]) {             if (file_exists("$GLOBALS[data_dir]/Atlas/Areacodes/$GLOBALS[language].txt")) {                 $GLOBALS["areacodes"] = array_filter(explode("n"file_get_contents("$GLOBALS[data_dir]/Atlas/Areacodes/$GLOBALS[language].txt")));             }         }         if ($formats === true) {             $number preg_replace("/[^d+]/"""$nr);             if (preg_match("/^00/"$number)) {                 $number preg_replace("/^00/""+"$number);             } elseif (preg_match("/^0[1-9]/"$number)) {                 switch ($GLOBALS["language"]) {                     case "se":                         $number "+46" preg_replace("/^0/"""$number);                         break;                 }             }             return $number;         }         if (!$formats$formats = ["### ##""## ## ##""### ## ##""### ### ##"];         if ($GLOBALS["phone_formats"]) $formats explode("n"$GLOBALS["phone_formats"]);         if ($GLOBALS["areacodes"]) {             if (preg_match("/^+(d{2})/"$nr$m)) {                 $country "+" $m[1];                 if ($m[1] == 46 && $GLOBALS["language"] == "se") {                     $country false;                     $nr preg_replace("/^+46/""0"$nr);                 } else {                     $nr preg_replace("/^+d{2}/"""$nr);                 }             }             $number preg_replace("/[^d+]/"""$nr);             $cd join("|"$GLOBALS["areacodes"]);             if (preg_match("/^($cd)(.*)$/"$number$m)) {                 $digits preg_split("//"$m[2], -1PREG_SPLIT_NO_EMPTY);                 $numlen count($digits);                 foreach ($formats as $f) {                     $charnum substr_count($f"#");                     if ($charnum == $numlen) {                         $lnr 0;                         foreach (preg_split("//"$f, -1PREG_SPLIT_NO_EMPTY) as $c) {                             if ($c == "#") {                                 $out[] = $digits[$lnr];                                 $lnr++;                             } else {                                 $out[] = $c;                             }                         }                         if ($out) {                             return $country $m[1] . "-" trim(join(""$out));                         }                     }                 }             }         }         return $country $nr;     } ?>
Så, först så kan man skicka med en array med de format man vill använda, annars så har funktionen en uppsättning med format. Dessa format gäller numret efter riktnumret, så en fil med riktnummer krävs också. Funktionen laddar en fil med det språkval som sidan i fråga har, så man får rätt lands riktnummer. Det är en lista med giltiga riktnummer, en per rad.
Sedan matchar vi numret med ett giltigt riktnummer och om det finns så går vi igenom formaten och ställer upp siffrorna efter hash-tecknena, så "0701234567" + "### ## ##" blir "070-123 45 67", behändigt!
Äntligen tillbaka till normalt! Skönt!
Nattduksbord
Måste bygga någon slags hållare till alla tvingar
Spelar Zelda på liten hotell-TV :)
Mina sinkningar är ju allt annat än perfekta. Måste öva mer!
Nu ska jag väl för tusan kunna bygga lådor med helt raka hörn?? :)
Khaleesi! Efter PanPastel så är det Luminance-pennorna.
Fixade så att jag kan använda Incras i-box på min Hammer-såg. Nu ska jag bara lista ut varför mina sinkningar blir fel.
Gillar inte den här strukturen på papper. Funkar bra för pastell men inget vidare för färgpennor
Pan Pastel-kladd som kanske kan bli något. Någon som ser vad det ska bli?
Tror det här med Crock Pot kan vara ett vinnande koncept :)
PanPastel-porträtt
Tror den börjar bli klar..
Nog med PanPastels, nu lite fixativ och sen Faber-Castell polychromos!
Testar mer med PanPastel
Äntligen!!! Nu måste jag bara vänta ett par veckor innan den kan folieras igen.
Har skaffat en Crock Pot för jag hatar att laga mat. Spännande!
Crock Pot
PanPastel
Stort hängigt träd i Stockholm
Har testat PanPastel för första gången. Ovant men rätt så mysigt!
Spacklat och slipat, färdig att målas. Och så har jag ingen färg…
Trälim + sågspån = första hjälpen för sprickor i trä.
Tron för Sigge
Road Trip Italien!
Verkstad Remake
Jonas och Jenna
Brud som chillar
Showing off
Undressing
Touch thyself
Hot Love
Profilporträtt
Resa utan kamera?
Paus
Supernöjd med folieringen!
Bilen ska folieras!
Ny såg
PHP och BankID
Jack Skellington
Verkstadsplaner
Magnettavla
Verandatak och grillhörna!
Vardagsrumsbord
Knivblock
Kökshylla
Ny ikon för karta
PC-bygge
Kerlee 35mm f/1.2
Objektivhylla
Natalie Dormer
Hållare till kattmatsskålar
Hälsningar från Norge
With a little help from my friends...
The Most Incredible Fantasy Maps You've Ever Seen
Cityfestivalen
Mitakon Speedmaster 50mm/f0,95
10 minuter vatten
Sony A7R II
Petzval 58 Bokeh Control Art Lens
Scrawlrbox
Nya skärmar till jobbet
Nikon Df - ny leksak
Boba Fett
First Order Storm Trooper
Mikisen
Star Wars-maraton!
Viola
Det händer grejer!
#inlineditbutton