Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:checkiban

IBAN mit PHP Validieren

ibanValidator.php
**
* @param string $iban
* @return bool
*/
function isIbanValid( $iban )
{
    $iban   = str_replace( ' ', '', $iban ); // Leerzeichen entfernen
    $length = strlen( $iban ); // die Länge der Zeichenkette ermitteln
 
    if( $length < 15 || $length > 34 )
    {
        return false;
    }
 
    $first  = substr( $iban, 0, 4 ); // die ersten 4 Zeichen...
    $last   = substr( $iban, 4 );
    $iban   = $last . $first; // ...hinten anhängen
 
    for( $i=65; $i<=90; $i++ ) // für jeden Buchstaben im Alphabet einen Schleifendurchlauf
    {
        $letter = chr( $i ); // Buchstabe vom ASCII-Code ermitteln (65=A)
        $code   = $i - 55;
        $iban   = str_replace( $letter, $code, $iban ); // Buchstabe durch Code ersetzen
    }
 
    $length = strlen( $iban );  // neue Länge des IBAN ermitteln (wurde durch 2stellige Zahlen länger)
    $mod = 0;
 
    for( $i=0; $i<=$length; $i=$i + 9 ) // Hilfsmethode für die Berechnung der Prüfziffer (9er-Blöcke)
    {
        if( $mod === 0 ) // im 1. Durchgang 9 Zeichen ziehen
        {
            $block = substr( $iban, $i, 9 );
        }
        else if( $mod < 10 ) // bei einstelligem Restwert die nächsten 8 Zeichen ziehen
        {
            $block = (string) $mod  . substr( $iban, $i, 8 );
            $i--; // Position um 1 Zeichen nach vorne verschieben
        }
        else // bei zweistelligem Restwert nur noch 7 Zeichen ziehen
        {
            $block = (string)  $mod . substr( $iban, $i, 7 );
            $i=$i - 2; // Position um 2 Zeichen nach vorne verschieben
        }
 
        $mod = $block % 97; // Restwert ermitteln
    }
 
    if( $mod === 1 ) // sofern die Prüfziffer korrekt ist muss der Restwert 1 ergeben
    {
        return true;
    }
 
    return false; // wird nur erreicht, wenn Script oben nicht mit 'true' beendet wird
}

Validator überprüfen

Mit diesen 65-IBAN-Beispielen zwischen 15 (Norwegen) und 32 (Saint Lucia) Zeichen können Sie den IBAN-Validator überprüfen.

$examples[] = 'AL47 2121 1009 0000 0002 3569 8741'; 	// 01. Albania
$examples[] = 'AD12 0001 2030 2003 5910 0100'; 		// 02. Andorra
$examples[] = 'AT61 1904 3002 3457 3201';		// 03. Austria
$examples[] = 'AZ21 NABZ 0000 0000 1370 1000 1944';	// 04. Azerbaijan
$examples[] = 'BH67 BMAG 0000 1299 1234 56'; 		// 05. Bahrain
$examples[] = 'BE62 5100 0754 7061'; 			// 06. Belgium 
$examples[] = 'BA39 1290 0794 0102 8494'; 		// 07. Bosnia and Herzegovina
$examples[] = 'BG80 BNBG 9661 1020 3456 78'; 		// 08. Bulgaria 
$examples[] = 'HR12 1001 0051 8630 0016 0'; 		// 09. Croatia
$examples[] = 'CY17 0020 0128 0000 0012 0052 7600';	// 10. Cyprus
$examples[] = 'CZ65 0800 0000 1920 0014 5399';		// 11. Czech Republic
$examples[] = 'DK50 0040 0440 1162 43';			// 12. Denmark 
$examples[] = 'EE38 2200 2210 2014 5685';		// 13. Estonia
$examples[] = 'FO97 5432 0388 8999 44';			// 14. Faroe Islands
$examples[] = 'FI21 1234 5600 0007 85';			// 15. Finland 
$examples[] = 'FR14 2004 1010 0505 0001 3M02 606';	// 16. France 
$examples[] = 'GE29 NB00 0000 0101 9049 17';		// 17. Georgia    
$examples[] = 'DE89 3704 0044 0532 0130 00';		// 18. Germany
$examples[] = 'GI75 NWBK 0000 0000 7099 453';		// 19. Gibraltar 
$examples[] = 'GR16 0110 1250 0000 0001 2300 695';	// 20. Greece 
$examples[] = 'GL56 0444 9876 5432 10';			// 21. Greenland 
$examples[] = 'HU42 1177 3016 1111 1018 0000 0000';	// 22. Hungary 
$examples[] = 'IS14 0159 2600 7654 5510 7303 39';	// 23. Iceland 
$examples[] = 'IE29 AIBK 9311 5212 3456 78';		// 24. Ireland 
$examples[] = 'IL62 0108 0000 0009 9999 999';		// 25. Israel 
$examples[] = 'IT40 S054 2811 1010 0000 0123 456';	// 26. Italy 
$examples[] = 'JO94 CBJO 0010 0000 0000 0131 0003 02';	// 27. Jordan 
$examples[] = 'KW81 CBKU 0000 0000 0000 1234 5601 01';	// 28. Kuwait 
$examples[] = 'LV80 BANK 0000 4351 9500 1';		// 29. Latvia 
$examples[] = 'LB62 0999 0000 0001 0019 0122 9114';	// 30. Lebanon 
$examples[] = 'LI21 0881 0000 2324 013A A';		// 31. Liechtenstein 
$examples[] = 'LT12 1000 0111 0100 1000';		// 32. Lithuania 
$examples[] = 'LU28 0019 4006 4475 0000';		// 33. Luxembourg 
$examples[] = 'MK072 5012 0000 0589 84';		// 34. Macedonia 
$examples[] = 'MT84 MALT 0110 0001 2345 MTLC AST0 01S';	// 35. Malta 
$examples[] = 'MU17 BOMM 0101 1010 3030 0200 000M UR';	// 36. Mauritius 
$examples[] = 'MD24 AG00 0225 1000 1310 4168';		// 37. Moldova 
$examples[] = 'MC93 2005 2222 1001 1223 3M44 555';	// 38. Monaco 
$examples[] = 'ME25 5050 0001 2345 6789 51';		// 39. Montenegro 
$examples[] = 'NL39 RABO 0300 0652 64';			// 40. Netherlands 
$examples[] = 'NO93 8601 1117 947';			// 41. Norway 
$examples[] = 'PK36 SCBL 0000 0011 2345 6702';		// 42. Pakistan 
$examples[] = 'PL60 1020 1026 0000 0422 7020 1111';	// 43. Poland 
$examples[] = 'PT50 0002 0123 1234 5678 9015 4';	// 44. Portugal
$examples[] = 'QA58 DOHB 0000 1234 5678 90AB CDEF G';	// 45. Qatar 
$examples[] = 'RO49 AAAA 1B31 0075 9384 0000';		// 46. Romania 
$examples[] = 'LC55 HEMM 0001 0001 0012 0012 0002 3015';// 47. Saint Lucia 
$examples[] = 'SM86 U032 2509 8000 0000 0270 100';	// 48. San Marino 
$examples[] = 'SA03 8000 0000 6080 1016 7519';		// 49. Saudi Arabia 
$examples[] = 'CH02 0020 7207 1011 7540 C';		// 50. Schweiz
$examples[] = 'RS35 2600 0560 1001 6113 79';		// 51. Serbia
$examples[] = 'SK31 1200 0000 1987 4263 7541';		// 52. Slovak Republic
$examples[] = 'SI56 1910 0000 0123 438';		// 53. Slovenia 
$examples[] = 'ES80 2310 0001 1800 0001 2345';		// 54. Spain 
$examples[] = 'SE35 5000 0000 0549 1000 0003';		// 55. Sweden 
$examples[] = 'CH93 0076 2011 6238 5295 7';		// 56. Switzerland 
$examples[] = 'TN59 1000 6035 1835 9847 8831';		// 57. Tunisia 
$examples[] = 'TR33 0006 1005 1978 6457 8413 26';	// 58. Turkey 
$examples[] = 'TN59 0102 6067 1119 9976 6058';	        // 59. Tunesien 
$examples[] = 'AE07 0331 2345 6789 0123 456';		// 60. UAE 
$examples[] = 'UA12 3052 9900 0414 9497 8039 8279 4';	// 61. Ukraine 
$examples[] = 'HU02 1160 0006 0000 0000 6424 7067';	// 62. Ungarn 
$examples[] = 'GB29 NWBK 6016 1331 9268 19';            // 63. United Kingdom
$examples[] = 'BY86 AKBB 1010 0000 0029 6600 0000';     // 64. Weissrussland
$examples[] = 'CY02 0020 0195 0000 3570 0982 2416';     // 65. Zypern
 
$success = 0;
 
foreach( $examples as $iban )
{
    if( isIbanValid( $iban ) )
    {
        $success++;
    }
}
 
echo 'Anzahl der korrekten IBANs:' . $success;
php/checkiban.txt · Zuletzt geändert: 2018/05/01 00:00 (Externe Bearbeitung)