16.12.2009
Altan Tanrıverdi | Yazılım | 3 yorum
PHP ile IBAN Doğrulama
IBAN doğrulaması gerektiren bir proje için geliştirdiğim fonksiyon aşağıda bulunuyor.
Resmi gazetede yayınlanan kriterlere uygun hazırlamaya çalıştım. Yaptığım testler %100 doğru döndü ancak, sizden de test sonuçlarını iletmenizi rica ediyorum. (Not: BC Math kullanır.)
<?php
// CopyLeft javam.org tarafından yayınlanmıştır.
function ibanDogrula ($deger) {
$iban = false;
$deger = strtoupper(trim($deger));
if(preg_match('/^TR\d{7}0[A-Z0-9]{16}$/', $deger)) {
$sayi = substr($deger,4,22).'2927'.substr($deger,2,2);
$sayi = str_replace(
array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'),
array(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35),
$sayi
);
$iban = (1 == bcmod($sayi,97)) ? true:false;
}
return $iban;
}
// CopyLeft javam.org tarafından yayınlanmıştır.
function ibanDogrula ($deger) {
$iban = false;
$deger = strtoupper(trim($deger));
if(preg_match('/^TR\d{7}0[A-Z0-9]{16}$/', $deger)) {
$sayi = substr($deger,4,22).'2927'.substr($deger,2,2);
$sayi = str_replace(
array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'),
array(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35),
$sayi
);
$iban = (1 == bcmod($sayi,97)) ? true:false;
}
return $iban;
}
Trackbacks/Pingbacks
- Faideli Bağlantılar #4 « Vuska Blog - [...] yine jquery’den. #17 : Mükemmel bir javascript grafik altyapısı.Yemede yanında yat. #18 : IBAN banka numarası doğrulama fonksiyonu,Javam ORG ...


Teşekkürler..!
Elinize sağlık
Regex doğrulama
^TR\d{7}0[A-Z0-9]{16}$
yerine
^TR\d{6}0[A-Z0-9]{16}$
olması gerekmez mi?
TR + (6 herhangi digit) + ‘0′ digiti + ‘A-Z veya 0-9 16 digit’ şeklinde anladım.
son gönderdiğim yorumu iptal edebilirsiniz.
RegEx doğrulamada bir sorun yok.
Tekrar elinize sağlık.