Huzurlarınızda yine çok işinize yarayacağını düşündüğüm bir script daha. Kendim yazdım diye söylemiyorum gerçekten basit ve bir o kadar işlevsel bir fonksiyon oldu. Özellikle toplu SMS apileri kullanan arkadaşların işini fazlasıyla kolaylaştıracağından eminim.
Ziyaretçilerden cep veya sabit telefon numarası istediğiniz ve herhangi bir sebeple tarayıcı bazlı kontrol kullanmadığınız (javascript vb.) bir kayıt formunuz olduğunu düşünün. Telefon numarası kriterlerini yıldızlı ifadelerle belirtmiş olmanıza rağmen yine de bir çok ziyaretçi uyarılarınıza kulak asmayacak ve ısrarla abuk subuk girişler yapmaya devam edecektir. Bu fonksiyon işte tam da bu noktada devreye giriyor ve şayet girilen numarada kullanılabilir veriler varsa düzenleyerek olması gerektiği hale getiriyor.
Fonksiyon tarafından adam edilip düzenlenebilir bazı hatalı giriş örnekleri:
+090-0555-666-44-55
90/0555/666*44-55
(+090)-(555)(666)(4455)
(090)-(+0555)-(666-4455)
…
Aslında numara +0(90&555/44%42{2(33 şeklinde ultimate bir yanlışlıkla da yazılmış olabilir, şayet ülke kodu (90) ve 10 haneli telefon numarası bir şekilde girilmişse fonksiyon numarayı algılıyor ve çıktısını aşağıdaki biçimde veriyor:
+905554442233
PHP – Telefon & GSM numarası kontrol ve formatlama fonksiyonu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php // Telefon & GSM numarası kontrol ve formatlama // Caner ÖNCEL - http://www.egonomik.com/ function telefon($text) { $text = preg_replace("/[^0-9]/", "", $text); $first = substr("$text",0,1); if($first == "0") { $text = substr($text,1); } $doksan = substr("$text",0,2); if($doksan != "90") { $new_telefon = "Gecersiz: Ulke kodu TR degil."; } else { $numara = substr($text,2); if(substr("$numara",0,1) == "0") { $numara = substr($numara,1); } if(strlen($numara) != "10") { $new_telefon = "Gecersiz: TR telefon formatina uygun degil (901112223344)"; } else { $new_telefon = "+$doksan$numara"; } } return $new_telefon; } // Kullanım $telefon_numarasi = "090(0555)-444-33-22"; echo telefon($telefon_numarasi); // çıktı: +905554443322 ?> |
2 yorum
çok harika..teşekkürler
merhaba burda numarayı koda değilde inputa yazdırarak nasıl çıkış verebiliriz?
bir projem için hızlandırmak gerekiyor bunu