Finansal projelerde hatalı para transferlerini önlemek için IBAN doğrulaması hayati önem taşır. Sadece karakter sayısını kontrol etmek yeterli değildir; IBAN'ın içindeki kontrol basamaklarını (checksum) matematiksel olarak doğrulamak gerekir.
Türkiye IBAN Yapısı
Türkiye'de kullanılan IBAN'lar standart olarak 26 karakterden oluşur ve şu yapıya sahiptir:
| Bölüm | Karakter Sayısı | Açıklama |
| Ülke Kodu | 2 Karakter | Türkiye için "TR" |
| Kontrol Basamakları | 2 Rakam | IBAN'ın doğruluğunu teyit eden algoritma sonucu |
| Banka Kodu | 5 Rakam | Bankayı tanımlayan benzersiz kod |
| Rezerv Alanı | 1 Rakam | Genellikle sıfır (0) olarak kullanılır |
| Hesap Numarası | 16 Rakam | Müşteriye özel hesap numarası |
PHP IBAN Doğrulama Fonksiyonu
Aşağıdaki fonksiyon, herhangi bir kütüphane gerektirmeden MOD 97 algoritmasını kullanarak IBAN'ın matematiksel olarak geçerli olup olmadığını kontrol eder.
<?php
function verifyIBAN($iban)
{
$iban = str_replace(' ', '', $iban);
$iban = strtoupper($iban);
if (strlen($iban) < 4) {
return false;
}
// Ülke bazlı uzunluk kontrolü (Türkiye için 26)
if (substr($iban, 0, 2) === 'TR' && strlen($iban) !== 26) {
return false;
}
// İlk 4 karakteri sona taşı
$checkIban = substr($iban, 4) . substr($iban, 0, 4);
// Harfleri rakama çevir (A=10, B=11, ..., Z=35)
$digits = '';
foreach (str_split($checkIban) as $char) {
if (is_numeric($char)) {
$digits .= $char;
} else {
$digits .= ord($char) - 55;
}
}
// Büyük sayılarla mod işlemi (BCMath yoksa manuel döngü)
$remainder = 0;
foreach (str_split($digits, 7) as $part) {
$remainder = ($remainder . $part) % 97;
}
return $remainder === 1;
}
IBAN Çözümleme (Parsing)
Doğrulanmış bir IBAN içerisinden banka kodunu ve hesap numarasını ayıklamak için şu fonksiyonu kullanabilirsiniz:
function parseIBAN($iban)
{
$iban = str_replace(' ', '', $iban);
return [
'country' => substr($iban, 0, 2),
'check' => substr($iban, 2, 2),
'bank' => substr($iban, 4, 5),
'account' => substr($iban, 10, 16)
];
}
SEO İçin İpuçları ve Dikkat Edilmesi Gerekenler
-
MOD 97 Algoritması: IBAN doğrulamada dünya standardı olan bu algoritma, ilk dört karakterin sona eklenip harflerin sayıya çevrilmesiyle çalışır.
-
Karakter Temizliği: Kullanıcılar genellikle IBAN'ı boşluklu kopyalar.
str_replaceile boşlukları temizlemek kullanıcı deneyimini artırır. -
Büyük/Küçük Harf: Algoritmanın sağlıklı çalışması için
strtoupperkullanımı zorunludur.
SEO Meta Description:
"PHP ile IBAN doğrulama nasıl yapılır? MOD 97 algoritması, Türkiye IBAN yapısı ve PHP IBAN çözümleme kod örnekleri içeren SEO uyumlu rehber."
Bu içeriği yasinersoy.com.tr adresinde yayınlayarak "PHP IBAN doğrulama" aramalarında üst sıralara çıkabilirsiniz.