PHP ile IBAN Doğrulama ve Çözümleme

PHP ile IBAN Doğrulama ve Çözümleme

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

  1. MOD 97 Algoritması: IBAN doğrulamada dünya standardı olan bu algoritma, ilk dört karakterin sona eklenip harflerin sayıya çevrilmesiyle çalışır.

  2. Karakter Temizliği: Kullanıcılar genellikle IBAN'ı boşluklu kopyalar. str_replace ile boşlukları temizlemek kullanıcı deneyimini artırır.

  3. Büyük/Küçük Harf: Algoritmanın sağlıklı çalışması için strtoupper kullanı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.

Tarih: