
Genellikle sanal pos kullanımlarında, girilen kart bilgilerinin hangi tipe (Visa, Mastercard, Amex, Discover, Dinners, Enroute, Jbc) sahip olduğunu görmek isteyebiliriz. Bu gibi durumlarda RegEx kullanarak kart bilgilerinden hangi tipe sahip olduğunu kolaylıkla tespit edebiliriz. Çünkü kart numarasının içerisinde, kart tipi de tanımlanmıştır. Kredi kartı tipi bulma işlemiyle birlikte sonuca ulaşıyor olacağız.
Hazırlayacağımız basit bir fonksiyon ile girilen kart bilgisinden, kredi kartı tipini bulma işlemini sağlamış olacağız. Tabi bu işlemi php ile sağlamış olacağız.
<?php function kartTipi($numara){ $numara = str_replace(" ", "", $numara); $cardType = [ "visa" => "/^4[0-9]{12}(?:[0-9]{3})?$/", "mastercard" => "/^5[1-5][0-9]{14}$/", "amex" => "/^3[47][0-9]{13}$/", "discover" => "/^6(?:011|5[0-9]{2})[0-9]{12}$/", "dinners" => "/^[300-305]d{11}$/", "dinners" => "/^3[68]d{12}$/", "enroute" => "/^2(014|149)d{11}$/", "jbc" => "/^3d{15}$/", "jbc" => "/^(2131|1800)d{11}$/", ]; foreach ($cardType as $key => $value){ if (preg_match($value,$numara)){ $type = $key; break; }else{ $type = false; } } return $type; }
Yukarıdaki fonksiyonla birlikte artık kart bilgisi girilerek, hangi Kredi Kartı Tipi olduğunu tespit ediyor olacağız. Kullanımıyla oldukça basit.
<?php switch (kartTipi("4546711234567894")) { case 'visa': echo "Bu bir visa karttır."; break; case 'mastercard': echo "Bu bir mastercard karttır."; break; default: echo "Kart tipi bulunamadı."; break; }
Bu şekilde de kullanım sağlanabilir. Tabi bu dersteki asıl amaç, RegEx’in nasıl işleneceğiydi. Veri eşleşmesini elde ettikten sonra sonucu istediğiniz gibi işleyebilirsiniz.