Code-Snippets » Gültigkeit einer IBAN prüfen

Gültigkeit einer IBAN prüfen

Um zu überprüfen, ob in einem Formular eine gültige IBAN (International Bank Account Number) eingegeben wurde, kannst du in PHP verschiedene Ansätze verwenden. Eine Möglichkeit besteht darin, die IBAN anhand der Länderspezifikation und der Prüfziffer zu validieren. Hier ist ein Beispiel, wie du das umsetzen kannst:

Code anklicken zum kopieren

function validateIBAN($iban)
{
// Entferne Leerzeichen und konvertiere in Großbuchstaben
$iban = strtoupper(str_replace(' ', '', $iban));

// Prüfe, ob die IBAN die richtige Länge für das Land hat
$ibanLengths = [
'AL' => 28, 'AD' => 24, 'AT' => 20, 'AZ' => 28, 'BE' => 16, 'BH' => 22, 'BA' => 20, 'BR' => 29, 'BG' => 22,
'CR' => 21, 'HR' => 21, 'CY' => 28, 'CZ' => 24, 'DK' => 18, 'DO' => 28, 'EE' => 20, 'FO' => 18, 'FI' => 18,
'FR' => 27, 'GE' => 22, 'DE' => 22, 'GI' => 23, 'GR' => 27, 'GL' => 18, 'GT' => 28, 'HU' => 28, 'IS' => 26,
'IE' => 22, 'IL' => 23, 'IT' => 27, 'KZ' => 20, 'KW' => 30, 'LV' => 21, 'LB' => 28, 'LI' => 21, 'LT' => 20,
'LU' => 20, 'MK' => 19, 'MT' => 31, 'MR' => 27, 'MU' => 30, 'MC' => 27, 'MD' => 24, 'ME' => 22, 'NL' => 18,
'NO' => 15, 'PK' => 24, 'PS' => 29, 'PL' => 28, 'PT' => 25, 'RO' => 24, 'SM' => 27, 'SA' => 24, 'RS' => 22,
'SK' => 24, 'SI' => 19, 'ES' => 24, 'SE' => 24, 'CH' => 21, 'TN' => 24, 'TR' => 26, 'AE' => 23, 'GB' => 22,
'VG' => 24
];

$countryCode = substr($iban, 0, 2);
if (!isset($ibanLengths[$countryCode])) {
// Unbekanntes Land
return false;
}

if (strlen($iban) != $ibanLengths[$countryCode]) {
// Falsche Länge
return false;
}

// Verschiebe die ersten 4 Zeichen ans Ende
$iban = substr($iban, 4) . substr($iban, 0, 4);

// Ersetze Buchstaben durch Zahlen
$iban = preg_replace_callback('/[A-Z]/', function ($matches) {
return ord($matches[0]) - ord('A') + 10;
}, $iban);

// Prüfe die Prüfziffer
$remainder = 0;
foreach (str_split($iban, 7) as $chunk) {
$remainder = ($remainder . $chunk) % 97;
}

return $remainder == 1;
}

// Beispielverwendung:
$iban = $_POST['iban'];

if (validateIBAN($iban)) {
echo 'Die eingegebene IBAN ist gültig.';
} else {
echo 'Die eingegebene IBAN ist ungültig.';
}

Code anklicken zum kopieren



In diesem Beispiel wird die Funktion validateIBAN() verwendet, um die IBAN zu validieren. Die Funktion überprüft zuerst die Länge der IBAN anhand des Ländercodes. Anschließend werden Leerzeichen entfernt und die IBAN in Großbuchstaben konvertiert.

Die Funktion verschiebt die ersten vier Zeichen der IBAN ans Ende und ersetzt dann Buchstaben durch Zahlen gemäß dem System, das in IBANs verwendet wird. Schließlich wird die Prüfziffer anhand des Rests bei der Division durch 97 überprüft. Wenn der Rest 1 ist, handelt es sich um eine gültige IBAN.

Beachte, dass dies nur ein einfacher Ansatz zur Prüfung einer IBAN ist.


Du darfst dieses Snippet kostenlos und uneingeschränkt nutzen, einschließlich kommerzieller Zwecke! Ich würde mich sehr darüber freuen, wenn du als kleine Geste der Anerkennung einen Link zu meiner Webseite auf deiner eigenen Seite platzieren könntest. Vielen Dank! :)