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:
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.';
}
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 kannst dieses Snippet frei nutzen, auch kommerziell. Ein Link zu meiner Webseite wäre als Dankeschön toll. Vielen Dank! :)
Fehler entdeckt? Schreib mir!
Werbung
Du suchst einen günstigen Anbieter für Webhosting? Netcup hat alles, was du suchst!
Sichere dir jetzt einen 5€-Gutschein für Neukunden!